【JavaScript】var、let、const之间的区别和使用

1.var

  • var 可重复声明变量
<script>
    var a = 6;
    var a = 8;
    consolog(a)  //8
</script>
  • var 可用于块级
<script>
      {
        var a = 66
      }
      console.log(a)  //66
</script>
  • var 可变量提升

第一个输出a执行顺序 相当于 var a; console.log(a); a= 'apple'; 这样输出结果声明变量a,但是未赋值,所以结果就是 underfined

第二个输出a 声明又赋值 所以结果是 apple

<script>
    console.log(a)  //undefined
    var a = 'apple';
    console.log(a)  //apple
</script>

2.let

  • let  不可重复声明变量
<script>
    let b = 6;
    let b = 8;
    consolog(b)  //Uncaught SyntaxError: Identifier 'b' has already been declared
                 //未捕获的语法错误: 标识符 b 已经被声明
</script>
  • let  不可用于块级
<script>
      {
        let b = 88
      }
      console.log(b)  //Uncaught ReferenceError: b is not defined
                      //未获取 引用错误 b 未被定义
</script>
  • let  不存在变量提升 
<script>
    console.log(b)  //ReferenceError: b is not defined
    let a = 'apple';
    console.log(b)  //apple
</script>

 3.const

  •  const  声明之后必须要赋值,否则会报错
const  c = '51800';

console.log(c)  //51800


const d;  // SyntaxError: Missing initializer in const declaration 

          // 语法错误: const 声明中没有初始划
  • const  常量意思,如果已经定义了,在修改这个常量就会报错
const c = 220
c = 330  //Uncaught TypeError: Assignment to constant variable. 
         //为抓取的 错误类型: 分配给的常量 变化了
console.log(c)


const aa = {
    a:456,
    b:789,
    c:123
}
aa.c = 4562456
aa.k =1234789
console.log(aa.k)  //1234789
//const只是保存了一个指向实际数据的指针,对于复杂对象类型
//(对象 object,数组 array,函数 function)数据结构变不变,const并无法控制
  • 函数里面若使用了 const 和 let ,全局变量在里面就无法使用
var PI = "a";
if(true){
  console.log(PI);  // ReferenceError: PI is not defined,就算在外面的是let,都报错
  const PI = "3.1415926";
}

猜你喜欢

转载自blog.csdn.net/m0_56349322/article/details/123883475