let 定义变量
特点:
let 定义的变量,不会进行预解析
let 定义的变量,与 forEach() 中的变量类似
每次执行都会定义出一个新的,相互之间不影响的变量
尤其是在循环中,for,forEach,for...in,都最好使用let定义变量
let 不能重复定义变量名称,一个变量名称只能定义一次
let 定义的变量,如果是定义在 { } 中,只能在 { } 中被执行被调用
在 { } 之外,是不能被调用执行的
{ } 包括 if switch for forEach for...in while function
let 在不同 { } 中,是不同作用域中定义let 变量
此时,变量的名称与 其他 { } 中的变量名称,或者{ }之外的变量名称,是可以重复
例:
1 //在for循环中,使用let 定义的循环变量 2 for(let j = 0 ; j<= 10 ; j++){} 3 // if判断中,使用var 定义 变量 4 if(true){ 5 var abc = 'abc'; 6 } 7 // 在if外,只要执行了,就可以调用 8 console.log(abc); 9 // if判断中,使用let 定义 变量 10 if(true){ 11 let def = 'def'; 12 } 13 // 在if外,即使执行了,也不能调用 14 console.log(def);
const 定义变量
在JavaScript中往往,管const定义的变量,称为常量
const定义的变量,不能被重复赋值,数据已经定义,不能更改
const定义的变量名称,也不能重复
const定义在{}中,不能在{}外调用
一般使用 const 定义 对象,数组,函数,引用数据类型
const中存储的是引用数据类型的地址,只要地址不改变,可以改变数组,对象中的单元存储的数据
例:
1 // const定义的变量,一旦赋值,不能改变 2 const strstr = 100; 3 // 对const定义的变量,重复赋值,会报错 4 // strstr = 200; 5 // 定义变量的名称,不能重复 6 // const strstr = '' 7 if(true){ 8 const sss = 'sss'; 9 console.log(sss); 10 } 11 // console.log(sss); 12 const arr = [1,2,3,4,5,6]; 13 // 给数组中第1个单元,修改存储的数据 14 // const arr 中存储的数组的地址是不改变的,可以执行的 15 arr[0] = '北京'; 16 console.log(arr); 17 // 修改对象中,单元存储的数据,不是修改 obj中存储的内存地址,是可以执行的 18 const obj = {name:'张三'}; 19 obj.name = '李四'; 20 console.log(obj);
总结:
let 多用于定义 基本数据类型 以及 循环中
const 多用于定义 引用数据类型
特点:定义的变量名称不能重复
在 { } 和 循环中定义,只能在 { } 和 循环中使用
let会建立独立的,存储不同的,相互不冲突数据的变量
const定义的变量,不能重复赋值,不能修改存储的数据