es6总结(一)--let和const
/*es6 是强制使用严格模式*/ /**/ function test(){ for(let i=0;i<10;i++){ console.log(i)//let生命的变量只在其声明的代码块中起作用{} } //console.log(i);//报引用错误而不是undefined } test(); //let a=1; //let a=2;//index.js:56 Uncaught Error: Cannot find module "./class/lesson1"文件没有编译成功 //let声明的变量不能重复重复声明 /*****************************以上是let***********************************/ /*****************************以下是const*********************************/ function last(){ const pi=3.1415926//声明的时候必须赋值且不能修改 console.log(pi) //pi=2//index.js:56 Uncaught Error: Cannot find module "./class/lesson1" 不能重新赋值 const k={//对象是引用类型 k内存中指向这个对象的指针 a:1 } k.b=3 console.log(k) } last()
//解构赋值 左右一一对应进行赋值 //数组解构赋值 { let a,b,rest; [a,b]=[1,2] console.log(a)//1 console.log(b)//2 } { let a,b,rest; [a,b,...rest]=[1,2,3,4,5,6,7] console.log(a,b,rest)//1 2 [3, 4, 5, 6, 7] } { let a,b; ({a,b}={a:1,b:2}) console.log(a,b) } //使用场景 //实现变量之间的交换 { let a=1; let b=2; [a,b]=[b,a] console.log(a,b)//2,1 } { function f(){ return [1,2] } let a,b; [a,b]=f(); console.log(a,b) } { function f(){ return [1,2,3,4,5,6] } let a,b,c; [a,,,b]=f(); console.log(a,b) } { function f(){ return [1,2,3,4,5,6] } let a,b,c; [a,,...b]=f(); console.log(a,b) } //对象的解构赋值 { let o={p:42,q:true}; let {p,q}=o console.log(p,q) } { let metaData={ title:'abc', test:[ { title:'test', desc:'description' } ] } let {title:esTitle,test:[{title:cnTitle}]}=metaData; console.log(esTitle,cnTitle) }
请爱好前端技术的朋友,联系我,有问题大家一起讨论