美文网首页already收藏
es6中的let和const

es6中的let和const

作者: 苏苏哇哈哈 | 来源:发表于2022-03-02 18:48 被阅读0次

前言

es6新增let和const命令,用来声明变量,用法类似var,接下来,我将详细的说说let和const

1.为什么新增let

  • var不好吗,为啥要新增一个let呢?
    var缺点还真的多,我能列出三点:
1.可以重复声明 
2.无法限制修改 
3.木有块级作用域

重复声明 :

var a = 10;
var a = 20;
console.log(a)//20

木有块级作用域
啥是块级作用域呢?

{},if(){},for(){}
{
    var a = 10;
    console.log(a)//10
}
console.log(a)//10
var name="susu";
if(true){
    var name="susu000";
    console.log(name)//susu000
}
console.log(name)//susu000
  • var不够用吗,木有let的时候怎么搞呢?
    当然是闭包啦
    var只有在只有在function(){}中才有作用域
var name = "susu";
if (true) {
    (function() {
        var name = "susu000";
        console.log(name)//susu000
    })()
}
console.log(name)//susu

var name = "susu";
if (true) {
    (function(name) {
        console.log(name)//hello
    })('hello')
}
console.log(name)//susu

2.let

不能重复声明

let a = 10;
let a = 120;
console.log(a)//报错Identifier 'a' has already been declared

具有块级作用域

{
    let a = 10;
    console.log(a)//10
}
console.log(a)//a is not defined

注意:不具有变量提升

3.用let解決一些问题

一个经典的for循环语句

for (var i = 0; i < 8; i++) {
    setTimeout(() => {
        console.log(i)//8个8
    },100)
}

如何解决呢?
方法一:let

for (let i = 0; i < 8; i++) {
    setTimeout(() => {
        console.log(i)//8个8
    },100)
}

方法二:闭包

for (var i = 0; i < 8; i++) {
    (function(i) {
        setTimeout(() => {
            console.log(i)
        }, 100)
    })(i)
}

4.const

const 声明一个常量,一旦声明,常量的值不可改变
不得改变值,一旦声明,就必须立即初始化
只在声明的块级作用域内生效
变量不提升,只能在声明的位置后使用
与let一样,不可重复
声明复合类型的数据,(主要是对象和数组),变量指向的内存地址
const NAME="susu";
console.log(NAME)
const obj = {
    "name": 'sss',
    "age": 1,
};
console.log(obj)
obj.name = "susu "
// obj={}//Assignment to constant variable.
console.log(obj)
//没法跟let一样 ,先声明
const NAME;
NAME="ss"
console.log(NAME)//Uncaught SyntaxError: Missing initializer in const declaration

let a;
a=10;
console.log(a)//10

相关文章

  • ES6(let 与 const)

    ES6中引入了let 和 const来声明变量,我们来看下let 和 const 的使用 一、let let定义的...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • es6常用语法

    const 和 let 在es6语法规范中,尽量使用let替代var,如果在const 和let中选,优先使用co...

  • js 中声明常量关键字 var、let、const

    js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。 ...

  • ES6笔记

    let 和 const ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • ES6中的let和const命令

    ES6中的let和const命令 let命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是...

  • 为什么要使用let和const,而不使用var?

    在ES6中,建议使用let和const来定义变量。引入let和const的目的就是创建了块作用域。 在ES5中只有...

  • 1.暂时性死区

    ES6中,let/const是使用区块作用域;var是使用函数作用域;在let和const声明变量和常量之前访问对...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

网友评论

    本文标题:es6中的let和const

    本文链接:https://www.haomeiwen.com/subject/gmrerrtx.html