谈谈 var , let , const 几种声明变量方式的区别


多读多写多记录,多学多练多思考。----------- Grapefruit.Banuit Gang(香柚帮)


关于声明变量,我们有var , let , 和 const几种方式,这次就来简单说一下他们之间的区别所在:

var:

            通过一个简单的小例子来看一下var ,

var a = 30;
if(true){
    var a = 50; 
    console.log(a)    //50
}
console.log(a)    //50

         js打印一个变量时,都是从下往上找的,通过例子可以看到两次打印都是50,说明两次打印所找到的都是if语句中的var,这说明var 的作用域是全局的,不管在哪都可以使用的。

let:

        同样的方法可以看一下let

let a = 30;
if(true){
    let a = 50; 
    console.log(a)    //50
}
console.log(a)    //30

         例子可以看出,二次打印时他并没有找到 if 语句中声明的a变量,而是又继续向上找的 if 外面声明的a,由此可见let声明的变量只在作用域范围内有效,出了作用域就找不到,可以看一下:只要出了作用域就会报错了

{
    let a = 30
}
console.log(a)   //报错

const:

         const其实是声明常量所用

const x = 10;
x = 100;

console.log(x)   //报错

          const声明常量是不可以更改的,更改就会报错

          但是有一点需注意:那就是const声明的数组是可以通过push等方法往里面添加或删除数组的,但是不可更改类型,否则也会报错:

const arr = [];

arr = "Green";
console.log(arr );   //报错

arr .push("red");
arr .push("blue");
console.log(arr );   //正常打印

好了,就是这些了,希望能帮助一些朋友!!!

 

你可能感兴趣的:(JS,var,let,const)