ES6要掌握的基本知识1:let,const,var
1、let和const是es6的新特性。不存在变量提升、暂时性死亡、不允许重复声明、块级作用域
(一)不允许重复声明:
(二)块级作用域:
let a=12;
function add(){
let a=23;
console.log(a);//23
}
if(true){
a=10;
//let a=45;
let b=34;
console.log(a);//10
}
add();
console.log(a);//10
(三)const定义的变量不可以修改,且必须初始化。
例子1:
例子2:
const person = {
name : 'yuer',
sex : '女'
}
person.name = 'test'
console.log(person.name)//打印出的为test
但若改成以下代码则报错:
const person = {
name : 'yuer',
sex : '女'
}
person = {
name : 'test',
sex : '女'
}
2、var
var定义的变量可以修改,如果不初始化会输出undefined,不报错
3、小练习题:看代码猜运行结果,评论区给答案
(一)
for(let i=0;i<3;i++){
let i='abc';
console.log(i);
}
for(let i=0;i<3;i++){
i='abc';
console.log(i);
}
(二)
if(true){
tmp='abc';
console.log(tmp);
let tmp;
console.log(tmp);
tmp=123;
console.log(tmp);
}
(三)提示:函数的形参相当于局部变量
function func(arg){
let arg;
}
func()
function func(arg){
{
let arg;
}
}
func()
(四)
var t=new Date();
function f(){
console.log(t);
if(false){
var t='hi,myboy';//提示:这里的t会被变量提升。(提升可以理解为初始化)
}
}
f();
let t=new Date();
function f(){
console.log(t);
if(false){
let t='hi,myboy';//提示,let不会变量提升,这里的t暂时性死去
}
}
f();
这些都是在下面这个视频里可以看到的。个人觉得这个老师讲的很好懂,都是从很基础的讲起
https://www.bilibili.com/video/BV1dz4y1o7XS?p=30