var、let、const的区别
2018/12/2 16:58:10

我们都知道在ES5中我们定义变量都是使用var来定义,随着代码的版本及方法不断的升级并完善,我们在ES6中新增了let及const,我写这篇文章的原因主要是在学习vue的时候分不清楚,这篇文章主要针对于学习vue的同学,因为不管我们是看vue的视频还是学习vue的知识里面都用到了let和const,所以做出以下总结

var声明的变量


var声明的变量存在变量提升,无论声明在何处,都会被提至其所在作用于的顶部,不会报错

   console.log(i); //存在变量提升,不会报错,但是打印出来是undefined    var i = 10;


var声明的变量可以修改

   var i = 10;    i = 20;    console.log(i); //20
let声明的变量


let声明的变量只是在它所在的代码块中有效,也就是块级作用域

for (let i = 0;i<10;i++){ console.log(i) } // console.log(i)    //报错:Uncaught ReferenceError: a is not defined


let声明的变量不能重复声明,否则报错

let i = 20; let i = 30; // console.log(i)    //报错:Uncaught SyntaxError: Identifier 'i' has already been declared


let不存在变量提升,用var声明的存在变量提升

    console.log(i); //不报错,但是是undefined,存在变量提升     var i = 10;     console.log(a);//报错,不存在变量提升 Uncaught ReferenceError: a is not defined     let a = 20;


let定义的值可以修改

    let i = 10;     i = 20;     console.log(i) //结果打印出来是20


函数内部使用let定义后,对函数外部无影响。

       let i = 20;        function fun(){            let i = 10;        }        fun();        console.log(i); //不报错,打印出来是20
const声明的常量


const定义的是常量,一旦定义不能修改(可以修改对象或者数组)

   const i = 10;    i = 20;    console.log(i); //报错 Uncaught TypeError: Assignment to constant variable.


可以修改定义的对象

const obj = {a:1}; obj.a = 2 console.log(obj.a) //打印的值为2


可以修改定义的数组

const Array = [1,2]; Array[0] = 3;// 修改arr[0] console.log(Array[0]);// 打印出来10


const也是块级作用域

   function fun(){        const i =10;        console.log(i) //10    }    fun();    console.log(i) //报错 Uncaught ReferenceError: i is not defined


const不可重复声明

   const i = 10;    const i =20;    console.log(i); //报错 Uncaught SyntaxError: Identifier 'i' has already been declared


const不存在变量提升

   console.log(i); //报错 Uncaught ReferenceError: i is not defined    const i = 10;


函数内部使用const定义后,对函数外部也无影响。

   const i = 20;    function fun(){        const i = 10;    }    fun();    console.log(i); //不报错,打印出来是20
上一条:没有了
下一条:没有了

猜你喜欢

发表评论

标签云
返回顶部图片