常用es6语法总结
Posted smdb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用es6语法总结相关的知识,希望对你有一定的参考价值。
一.let ,var,const
var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改。
for (var i = 0; i < 3; i++) setTimeout(function () alert(i); , 0);
结果会打印3次3,原因是var 没有块级作用域,而let有自己的块级作用域,所以不会出现这种情况。
使用 let 定义的变量在大括号的外面是访问不到的。使用let的好处是
实现块级作用域
if(true) let name = ‘zfpx‘; console.log(name);// ReferenceError: name is not defined
不会污染全局对象
if(true) let name = ‘zfpx‘; console.log(window.name);
结果 undefined
let 重复定义会报错,不存在变量的预解释
const可以去声明一个常量,常量一旦赋值就不能再修改了
这种情况是可以改的:
const names = [‘zfpx1‘]; names.push(‘zfpx2‘); console.log(names);
不同的块级作用域可以多次定义
const A = "0"; const A = "A"; console.log(A) const A = "B"; console.log(A) console.log(A)
二.解构
1 解析数组
var [name,age] = [‘zfpx‘,8]; console.log(name,age);//zfpx 8]
2.嵌套赋值
let [x, [y], z] = [1, [2.1, 2.2]]; console.log(x, y, z); let [x, [y,z]] = [1, [2.1, 2.2]]; console.log(x,y,z); let [json,arr,num] = [name:‘zfpx‘,[1,2],3]; console.log(json,arr,num);//1 2.1 undefined 1 2.1 2.2 name: ‘zfpx‘ [ 1, 2 ] 3
3.省略负值
let [, , x] = [1, 2, 3]; console.log(x);
4.解构对象
var obj = name:‘zfpx‘,age:8; //对象里的name属性的值会交给name这个变量,age的值会交给age这个变量 var name,age = obj; //对象里的name属性的值会交给myname这个变量,age的值会交给myage这个变量 let name: myname, age: myage = obj; console.log(name,age,myname,myage); //zfpx 8 zfpx 8
四。字符串
模板字符串用反引号(数字1左边的那个键)包含,其中的变量用$
括起来
var name = ‘zfpx‘,age = 8; let desc = `$name is $age old!`; console.log(desc); //所有模板字符串的空格和换行,都是被保留的 var str = `<ul> <li>a</li> <li>b</li> </ul>`; console.log(str);
以上是关于常用es6语法总结的主要内容,如果未能解决你的问题,请参考以下文章