ES6版本的JavaScript语法,是一个非常重要的版本
对于JavaScript的功能上有一个极大的丰富
让JavaScript从弱类型语言,提升到了 半强类型语言
(一)、let
**1. let 定义的变量,不会进行预解析
2. let 定义的变量,与 forEach() 中的变量类似
每次执行都会定义出一个新的,相互之间不影响的变量
尤其是在循环中,for,forEach,for…in,都最好使用let定义变量
// 与forEach 是 相同的赋值方式
// 每次循环都建立一个独立的,相互不影响的 i 变量, 存储对应的数值
// 每一次点击,不同的标签,调用的是不同的 i变量,输出的是不同的 存储数值
for(let i = 0 ; i <= oLis.length-1 ; i++){
oLis[i].onclick = function(){
console.log(i+1);
}
}
- let 不能重复定义变量名称,一个变量名称只能定义一次
- let 定义的变量,如果是定义在 { } 中,只能在 { } 中被执行被调用
在 { } 之外,是不能被调用执行的
{ } 包括 if switch for forEach for…in while function
// 在for循环中,使用let 定义的循环变量
for(let j = 0 ; j<= 10 ; j++){
}
// 在循环外不能调用循环变量,会报错
// console.log(j);
- let 在不同 { } 中,是不同作用域中定义let 变量
此时,变量的名称与 其他 { } 中的变量名称,或者{ }之外的变量名称,是可以重复**
(二)、 const 定义变量
在JavaScript中往往,管const定义的变量,称为常量
1 . const定义的变量,不能被重复赋值,数据已经定义,不能更改
2 . const定义的变量名称,也不能重复
3 . const定义在{}中,不能在{}外调用
4 . 一般使用 const 定义 对象,数组,函数,引用数据类型
5 . const中存储的是引用数据类型的地址,只要地址不改变,可以改变数组,对象中的单元存储的数据’
const arr = [1,2,3,4,5,6];
// 给数组中第1个单元,修改存储的数据
// const arr 中存储的数组的地址是不改变的,可以执行的
arr[0] = '北京';
console.log(arr);
// 修改对象中,单元存储的数据,不是修改 obj中存储的内存地址,是可以执行的
const obj = {
name:'张三'};
obj.name =