javascript中var,let,const的区别用法
            
            
                来源:javascript中var,let,const的区别用法 - 简书
- var
 var相比let就是管的比较宽,他的值可以被内部修改。
| 1 | function tests(){ | 
- let
 let是es6中新增定义,带有块级作用域,只会在所定义块生效。
| 1 | function test(){ | 
- const 
 const用来定义常量(可以是字符串,数组,函数,对象等),并且初始值不可为空,但他并不是不可更改的。举个栗子:- 1 
 2
 3
 4
 5
 6
 7
 8- const c;//会产生报错. 
 const d = 1;//正确
 const arr = [1, 2];
 arr.push(1);//正确 [1, 2, 1]
 arr[0] = 3;//正确 [3, 2, 1]
 arr = [];//错误TypeError: invalid assignment to const `arr'- 可见,如果有需要,可以改变const里所存储的值,但它的指向空间是无法操作的。 
- 有趣的面试例子 
 面试的时候很经常遇到一个例子:- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17- for (var i = 0; i < 5; i++) { 
 setTimeout(function() {
 console.log(i);
 }, 1000);
 }
 //这个例子执行完输出什么结果?
 //答案是 5,5,5,5,5
 //如果想要输出0,1,2,3,4改怎么实现?
 //其中一种方案就是把var换成let就可以了。let的块级作用域在这里就体现出来了。
 for (let i = 0; i < 5; i++) {
 setTimeout(function() {
 console.log(i);
 }, 1000);
 }
         Comments
    
    
        
            
    