-
可以使用let关键字来声明变量
let a;
let b,c;//同时声明多个变量
let stu = '张三';
let name ='李四',age = 12;//声明变量的同时赋值
-
let关键字使用的注意事项
(1).变量在声明的时候不可以重复,这也符合其他语言的变量声明规范
let name = '李四';
let name = '张三';//这里开始报错,但是再使用var的时候可以这样声明!
(2).块级作用域
快捷作用域的意义:这里的块级作用域可以理解为只要变量在哪一个{}内部使用,就在那一个{}内才有效果。
{
let stuAge = 12;
console.log("---" + stu);//正确输出变量stu,因为它是再{}内部
}
console.log("---" + stu);//报错,不能够正确输出stu,因为不在{}内部
(3).不存在变量的提升
所谓的变量提升是指:可以先使用再说定义
console.log("---" + test);//这里不报错,可以先使用后定义,等价于先声明了一个变量,然后赋予他一个初始化值
var test = 'stu';
//不存在变量提升就是说使用let声明变量的时候,必须先声明,在使用。
//这一个符合我们其他的编程语言的特点。
console.log("---" + ts);//这里报错
let ts = 'stu';
(4).不影响作用域链
作用域链:就是如果在一个较大的范围之内声明,那么在这一个范围之内的人都可以取使用 这一个变量。
{
let stu = '李四';
function fn(){
console.log("---" +stu );
}
fn();
}
//以后声明变量,我们就是用let关键字即可。
-
使用关键字const声明常量
(1).常量在声明的时候就必须要赋值
const stu = '张三';//正确
const name;//报错
(2).常量在定义的时候一般使用大写。(仅仅知识代码编写规范的写法)
(3).常量在赋值结束之后,就不能够在修改了。也就是说只能够在定义的时候赋予出初始值
const stu = '李四';
stu = '张三';//报错,常量不能够修改
(4).块级作用域,同let关键字(这里就不再细说)
(5).使用const声明的数组或者是对象,可以进行修改,不算做对常量的修改,因为其地址值没有改变。
const arr = ["张三","李四","王五"]
arr.push("王二麻子");//不报错