1.let 和 const
2.作用域的概念
* 全局作用域
* 函数作用域
* 块作用域
--let和const是在块作用域使用的方法是相同的;
3.如何使用let和const
let
eg:1.
function test(){
let a =1;
console.log(a);
}
test();//1
2.块级作用域:
一段代码是用大括号包起来的,大括号里面就是块级作用域;
1.let声明的变量只在自己块级作用域内有效;
2.如果你的代码是使用ES6的,ES6是强制开启严格模式的;
严格模式:
在ES5中如果强调使用严格模式,一定是在你的代码中能找到这句话;
“use strict”来启动这个文件使用严格模式;ES6中不需要这句话也是
强制开启严格模式的;
严格模式的一个点是:变量未声明不能引用,否则就会报引用错误;
function test(){
for(let i=1;i<3;i++){
//let声明的i变量在块级作用域外是不存在的(可以理解生命周期结束了)
console.log(i)://输出1、2
}
console.log(i);//报错引用错误(i脱离了块级作用域导致的错误)
}
test();
3.使用let定义变量不能重复定义这个变量;
function test(){
//a变量被重复定义会报错(模板没有编译成功)
let a =1;
let a =2;
}
test();
const
声明一个常量(不能修改的叫常量)
1.使用const声明的常量是不能修改的;
--存储的数值不允许修改;
--对象是引用类型,声明的k是指向这个对象的存储的指针,这个指针是不变的,但是这个对象本身是可以变的;
2.const声明的时候必须赋值;
如果只声明const PI; PI=8;会报错说这个是不完整的,编译是不通过的;
eg:1.
function last(){
const PI = 3.1415926;
//PI = 8; //会报错“PI”is read-only只读属性不能改
const k ={
a:1
};
k.b =3;
console.log(PI,k);
}
last();//3.1415926 object{a:1,b:3}
网友评论