let、var、const的区别
2017-08-05 11:23
519 查看
1.let命令是ES6中新增的一个命令,用于声明变量,该命令的用途有点类似于传统的var的定义变量,但是let的作用域是在一个块中才有作用,例如:
{
let x = 100;
var y = 99;
}
a //ReferenceError:a is not defined
b //99
let 命令比较适用于for循环的内部,因为该变量的作用域仅仅在for{}内部,出了这个域就不能用了
for(let i=0;i<100;i++){
//....
}
console.log(i) //ReferenceError:i is not defined
var 声明的变量,相当于全局变量。
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10这里面的var定义的i就是全局变量,随着遍历的进行,该值一直在变化,例如:第一轮遍历,a[0]==0,第二轮遍历:a[0] == a[1] = 1,第三轮遍历a[0] == a[1] == a[2] =2 。。。,所以遍历完成之后,a[0]==a[1]==....a[6]==...a[9] =10
如果,此时用let声明时:
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6这个值就是特定的值了。
2.var 定义变量之前,使用的时候不会报错,而let定义变量前使用会报错
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
3.let在相同的作用域中不允许重复定义
// 报错
function () {
let a = 10;
var a = 1;
}
// 报错
function () {
let a = 10;
let a = 1;
}
const:是声明常量的命令,该命令声明的变量不允许改变
const PI = 3.1415;
PI // 3.1415
PI = 3;
// TypeError: Assignment to constant variable.
{
let x = 100;
var y = 99;
}
a //ReferenceError:a is not defined
b //99
let 命令比较适用于for循环的内部,因为该变量的作用域仅仅在for{}内部,出了这个域就不能用了
for(let i=0;i<100;i++){
//....
}
console.log(i) //ReferenceError:i is not defined
var 声明的变量,相当于全局变量。
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10这里面的var定义的i就是全局变量,随着遍历的进行,该值一直在变化,例如:第一轮遍历,a[0]==0,第二轮遍历:a[0] == a[1] = 1,第三轮遍历a[0] == a[1] == a[2] =2 。。。,所以遍历完成之后,a[0]==a[1]==....a[6]==...a[9] =10
如果,此时用let声明时:
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6这个值就是特定的值了。
2.var 定义变量之前,使用的时候不会报错,而let定义变量前使用会报错
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
3.let在相同的作用域中不允许重复定义
// 报错
function () {
let a = 10;
var a = 1;
}
// 报错
function () {
let a = 10;
let a = 1;
}
const:是声明常量的命令,该命令声明的变量不允许改变
const PI = 3.1415;
PI // 3.1415
PI = 3;
// TypeError: Assignment to constant variable.
相关文章推荐
- ES6 var和let和const 的区别
- JavaScript中const, var, let的区别
- JavaScript中const,var,let区别
- var、let、const区别
- JS中的块级作用域,var、let、const三者的区别
- let,const,var的区别
- js中let 、 var 、 const的区别
- javaScript中var、let、const的区别
- JavaScript中var、let、const区别。
- js中const,var,let区别
- ES6 let、var、const联系与区别
- var、let、const 的一些区别
- 微信小程序let和var以及const有什么区别
- js 中const, var, let的区别
- javascript中var与let与const的区别
- JS中的变量声明——var,let,const的区别
- js中const、var、let的区别
- js中var,const,let区别
- JavaScript中const、var和let区别浅析
- JavaScript中const,var,let的区别