ES6语法说明,let与const

124 阅读2分钟

先说一下我们通常会使用什么定义变量,

var a = 12;
//这是我们经常用的变量定义方式
console.log(a) //12

注意:

var 定义的变量只存在全局作用域和函数作用域(局部作用域)

列如:(全局)
    var a = 12;
    function fun(){
        console.log(a)
    }
    fun() //12

列如:(局部)
    var a = 12;
    function fun(){
        var a = 5;
        console.log(a)
    }
    fun() //5

let定义

先说一下let,举个例子:

let 和 const 定义的变量是存在块级作用域的,什么是块级作用域

列如:

 if(true){var a = 12;}//var声明
 console.log(a)//12;
 
 if(ture){let a = 12;}//let声明
 console.log(a)//报错

这就是let的块级作用域,只在所声明的区域内可用;

let定义的变量必须先定义再使用

var定义;
console.log(a);//undefined
var a = 12;

let定义;
console.log(a);//报错
let a = 12;

let和const是没有变量的声明提升/预解析

let定义的变量不可重复定义:

var 定义:

let 定义:

const定义

const定义和let的区别基本相似;但是有一点就是const定义的变量不可修改

但是const所定义的对象和数组是可以修改的,

列如:

push也是可以的,如果你不想让它修改的话可以使用Object.freeze() 具体语法参数可以看一下文档 developer.mozilla.org/zh-CN/docs/…

在const定义的时候是可以修改对象和数组的;。前面说的不可修改是不可以修改类型(暂时至少我认为是这么认为的)

比如:

const a = [1,2,3];

const a = true;

是不可以这样直接修改的;

本文章仅以自己防止忘记而记录,不管是我还是其他人,当你看到这篇文章的时候说明你还在从事前端工作,或者在学习前端,所以不管以后遇到什么问题,和挫折,都不要忘记你敲代码的初衷