ECMAScript6
经历了多个版本,97 第一版
2015,6 ECMA 6
let 和const
var: 1, var可以重复声明
2,作用域:全局作用域和函数作用域
3,会进行预解析
let: 1,同一作用域不能重复声明,会报错Uncaught SyntaxError: Identifier 'a' has already been declared
2,作用域:全局作用域和块级作用域 {},只能在作用域中用
3,let本身不进行预解析,先声明,再使用
const 常量
1,声明后赋值,一旦赋值,不允许修改
其他特性和let一样
MDN https:/:/developer.mozilla.org/zh-CN/docs/MDN/About
块级作用域
eg:
<script>
{
let lis = document.querySelectorAll("li")
for(let i = 0; i< lis.length; i++){
lis[i].onclick = function(){
console.log(i)
}
}
}
</script>
let作用每赋值一次,会开辟一个独立的代码块{},所有最终结果是0,1,2,如果使用var的话,最终结果3,3,3
结构赋值
//对象的结构赋值
//对象的结构赋值
let obj = {
a : 1,
b : 2
}
let {a,b} = obj;
console.log(a,b)
//对数组的解构赋值
let arr = ["1","b","c"]
let [e,f] = arr
console.log(e,f)
//快速交换a,b
一般方法
var a = 1;
var b = 2;
var c = a;
a = b;
b = c;
使用数组的结构赋值
var a = 1;
var b = 2;
[a,b] = [b,a]
字符串的结构赋值同数组的结构赋值
补充知识点 querySelectorAll: 返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点)。返回的对象是 NodeList 。