1.数据类型:值类型(Number,String,Boolean,undefined),引用类型(object(包含数组),Null),函数
2.typeod 判断所有的值类型,函数。引用类型无法区分(都是object)
3.深拷贝
3.深拷贝 const obj1 = { age:20, name:'aaa', address:{ city:'beijing' }, arr:[1,2,3] } const obj2 = deepClone(obj1); obj2.address.city = "shanghai"; console.log(obj1) /** * 深拷贝 * @param {Object} obj 要拷贝的对象 */ function deepClone(obj){ if(typeof obj !='object' || obj ==null){ return obj; } // 初始化返回结果 let newObj if(obj instanceOf Array){ newObj = []; }else{ newObj ={}; } for(let i in obj){ // 保证key不是原型上的属性 if(obj.hasOwnProperty(key)){ // 递归 newObj[key] = deepClone(obj[key]) } } // 返回结果 return newObj; }
4.变量计算
类型转换: a.字符串拼接 let a = 100+10;//120 let a = 100+'10';//'10010' let a = true +'10';//'true10' b.== 100 == '100' //true 0 == '' //true 0 == false //true false == '' // true null == undefined //true 用 === 的话,都是false c.if语句和逻辑运算 truly变量: !!a === true 的变量 falsely 变量: !!a === false 的变量 <!-- 以下是falsely 变量。除此之外都是turly变量--> !!0 === false !!NaN === false !!'' === false !!null === false !!undefined == false !!false === false if(){} //if括号里面的判断就是 turely 和falsely