简述var、let、const三者的区别

前二者为定义变量,const一般用来定义常量。

1、var声明变量可以重复声明,而let不可以重复声明

  var name = 'xiaohuang';
var name = 'xiaolan';
console.log(name);//xiaolan
 let name = 'xiaohuang';
let name = 'xiaolan';
console.log(name);//报错'name' has already been declared

2、var是不受限于块级的,而let是受限于块级

 {
var a = 10;
}
console.log(a);//10
//在花括号外面和里面打印都会出来10
 {
let a = 10;
}
console.log(a);//Uncaught ReferenceError: a is not defined
//而let声明,只能在花括号里面打印,在外面打印就报错了

3、var会与window相映射(会挂一个属性),而let不与window相映射

 var m = 20;
console.log(window);

简述var、let、const三者的区别

 let m = 20;
console.log(window);

简述var、let、const三者的区别

同理,var可以引用全局对象,而let不可以

 var user = '小明';
console.log(window.user);//小明
 let user = '小明';
console.log(window.user);//undefined

4、var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错

 console.log(bosh);//undefined
var bosh = 100;
 console.log(bosh);//ReferenceError: bosh is not defined
let bosh = 100;

最后说下const,const有以下几个特性

1)声明之后必须赋值,否则会报错

  const arr;
console.log(arr);//Missing initializer in const declaration

2)定义不可变的量,改变了就会报错

 const num = 100;
const num = 200;
console.log(lis);//Identifier 'num' has already been declared

3)不会与window相映射(不在window上挂一个属性)

4)支持块级作用域,只要有{}都支持块级

5)在声明的上面访问变量会报错

注:后三个特性和let一样,就不举例子了~

const应用场景:

一般这个值不会变了,就用常量。

获取静态元素的时候可以使用

比如

const lis = document.querySelectorAll('li');
上一篇:JS和jQuery中ul li遍历获取对应的下角标


下一篇:js的重载