美文网首页
4.ECMAScript6(ES6)- let和const的特征

4.ECMAScript6(ES6)- let和const的特征

作者: 挤时间学习的阿龙 | 来源:发表于2019-05-03 23:47 被阅读0次
timg (1).jpg

变量提升问题
不允许重复声明
块级作用域

1、变量提升问题

(1)变量在提升之前就可以使用
<script type="text/javascript">
        //变量在提升之前就可以使用
        console.log(a)
        var a=1
    </script>
image.png
(2)变量在提升之前不可以使用
<script type="text/javascript">
        //变量在提升之前不可以使用
        console.log(b)
        let b=2
    </script>
image.png

2、不允许重复声明

(1)ES5变量可以重复声明
<script type="text/javascript">
        //允许重复声明
        function ceshi(){
            var a=1
            var a=5
            console.log(a)
        }
        ceshi()
    </script>
image.png
(2)ES6变量不可以重复声明
    <script type="text/javascript">
        //不允许重复声明
        function ceshi(){
            var a=1
            let a=5  //注意这里,let是ES6的定义变量的操作方法
            console.log(a)
        }
        ceshi()
    </script>
<script type="text/javascript">
        //不允许重复声明
        function ceshi(){
            var a=1
            const a=5 //注意这里,const是ES6的定义变量的操作方法
            console.log(a)
        }
        ceshi()
    </script>
image.png

3、块级作用域

(1)ES6不允许函数内部声明参数
    <script type="text/javascript">
        function ceshi3(c){  //ceshi3函数内部声明一个参数c 
            let c   //再函数中重新声明参数
            console.log(c)
        }
        ceshi3()
    </script>
image.png
(2)改成ES5 var就可以了
    <script type="text/javascript">
        function ceshi3(c){  //ceshi3函数内部声明一个参数c 
            var c   //用var函数内重新声明参数
            console.log(c)
        }
        ceshi3()
    </script>
image.png
(3)声明块级作用域,就可以了(用{ }把let包起来,添加一个块级作用域)
    <script type="text/javascript">
        function ceshi3(c){  //ceshi3函数内部声明一个参数c 
            {let c   //再函数中重新声明参数
            console.log(c)}
        }
        ceshi3()
    </script>
image.png
(4)ES6中有一个暂时性死区,只要块级作用域内部存在let命令,它声明的变量就会绑定当前区域,不再会受外部区域的影响

①ES5 函数外声明的变量,函数内部可以修改

    <script type="text/javascript">
        var a='beijing'
        function ceshi4(){
            var a='shanghai'
            console.log(a)
        }
        ceshi4()
    </script>
image.png

②ES6 函数外如果有该变量了,函数内部重新赋值,再使用let就会报错

<script type="text/javascript">
        //暂时性死区
        var a='beijing'
        function ceshi4(){
            a='shanghai'
            let a
            console.log(a)
        }
        ceshi4()
    </script>
image.png

③ES6 函数外如果有该变量了, 函数内部let会绑定当前函数内部区域,不受外部影响

    <script type="text/javascript">
               //暂时性死区 
        var a='beijing'
        function ceshi4(){
            let a='shanghai'
            console.log(a)
        }
        ceshi4()
    </script>
image.png

相关文章

  • 4.ECMAScript6(ES6)- let和const的特征

    变量提升问题不允许重复声明块级作用域 1、变量提升问题 (1)变量在提升之前就可以使用 (2)变量在提升之前不可以...

  • (JS)

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

  • ES6(let 与 const)

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

  • es6总结一

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

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

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

  • TS中 var 和 let 的区别

    let 和 const 是 ES6 中新增的声明对象的类型。与 var 相比,let 和 const 不存在...

  • ES6之 let 和 const 命令

    ES6 之 let 和 const 命令 1、let 命令 1.1、基本用法 ES6 新增了let命令,用来声明变...

  • es6常用语法

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

  • es6解读1: let,const和symbol

    let 和 const 作用域的概念 如何使用let和const 使用let1、形成块级作用域2、es6下强制开启...

  • es6

    [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...

网友评论

      本文标题:4.ECMAScript6(ES6)- let和const的特征

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