栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

javascript高级语法(进阶篇1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript高级语法(进阶篇1)

闭包部分:
// function a(){
		// 	function a(){
		// 		var bbb = 34;
		// 		console.log(aaa);
		// 	}
		// 	var aaa = 123;
		// 	return b;
		// }
		// var glob = 100;
		// var demo = a();
		// demo();
		// function test(){
		// var arr = [];//arr里面填充了十个函数,
		// for(var i = 0;i < 10;i++){
		// 	arr[i] = function (){// console.log(i);
		// 		document.write(i+" ");//此时会打印10个10,这是因为闭包的原因
		// 	}
		// }
		// 	return arr;//数组返回出来。然后外部接收
		// }
		// var myArr = test();//myArr相当于arr,让myArr每一位都执行
		// for(var j = 0;j < 10;j++){
		// 	myArr[j]();
		// }
		// for(var i = 0;i < 10;i++){
		// 	document.write(i);
		// }
		// document.write(i);


		function test(){
		var arr = [];//arr里面填充了十个函数,
		for(var i = 0;i < 10;i++){
			(function (j){
				arr[j] = function (){
					document.write(j + " ");
				}
			}(i));
		}
			return arr;//数组返回出来。然后外部接收
		}
		var myArr = test();//myArr相当于arr,让myArr每一位都执行
		for(var j = 0;j < 10;j++){
			myArr[j]();
		}
		for(var i = 0;i < 10;i++){
			document.write(i);
		}
		document.write(i);
argumen和克隆部分:
//深度克隆
		var obj = {
			name:"abc",//原始值,栈内存->abc
			age:123,
			card:['visa','master'],
			wife:{
				name:'bcd',
				son:{
					name:"aaa"
				}
			}
		}
		var obj1 = {

		}       //			// name:obj.name,
			// age:123,
			// card:[obj.card[0],obj.obj.card[1]],
			// wife:{
			// 	name:"bcd",
			// 	son:{
			// 		name:"bcd",
			// 		son:
			// 	}
			// }
		
		function deepClone(origin,target){

			var target = target || {},
				toStr = Object.prototype.toString,
				arrStr = "[object Array]";
			// 控制台:Object.prototype.toString.call([]);

			for(var prop in origin){
				if(origin.hasOwnProperty(prop)){
					if(origin[prop] !=="null" && typeof(origin[prop]) == 'object'){
						if(toStr.call(origin[prop]) == arrStr){
							target[prop] = [];
						}else{
							target[prop] = {};
						}

						deepClone(origin[prop],target[prop]);
					}else{
						target[prop] = origin[prop];
					}
				}
			}
			return target;
			// var arr = ['a','b','c'];
			// for(var prop in arr){
			// 	cconsole.log(arr[prop])
			// }

			// 数组:特殊对象//也可以for in 数组
			//遍历对象 for(var prop in obj)
			//判断是否为原始值(typeof() object ) 判断是数组还是对象( instanceof toString->推荐) 建立相应的数组或者对象(拷贝一个对象-》拷贝属性,原始值直接拷贝,不是的话,引用值(数组,对象),是数组,建立一个新的数组,然后把原来的数组和现在要被拷贝的新的数组当做一对拷贝对象)
			// 完善一:没有传target,就return target
			//完善二:

		}


		// 三目运算符
		//简便操作 ? :
		// 条件判断 ? 是:否 并且会返回值else if + return
		// var num = 1 > 0 ? 2+2:1+1;
		var num = 1 > 0 ? ("10" > "9" ? 1:0):2



		// "10" > "9" :通过逐位比阿斯卡码,也就是1先比9,那么可知返回false

		// 所以以下可以简写如下,加括号稳妥点,因为他会先执行
						// if(toStr.call(origin[prop]) == arrStr){
						// 	target[prop] = [];
						// }else{
						// 	target[prop] = {};
						// }

		target[prop] = toStr.call(origin[prop]) == arrStr? [] : {}
Dom操作:

	
		




原型链prototype:
	
作用域:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024652.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号