zoukankan      html  css  js  c++  java
  • javascript——let关键字

    在ES2015后,引入了两个关键字letconst

    let关键字

      在引入let关键字和const之间,JavaScript里只有两种作用域:全局作用域和函数作用域,引入两个关键字后,提供了块级{}作用域

    全局作用域:

      全局(函数外面)声明的变量有全局作用域(使用var声明的),全局变量可以在JavaScript的任何地方访问。

    函数作用域:

      局部(函数里面)声明的变量拥有局部作用域(使用var声明的),局部变量只可以在被声明的函数内部使用。

    块级作用域:

      通过var申明的变量是没有块级作用域的,在{}里使用var声明的变量任然可以在{}外被访问。

      使用let申明的变量拥有块级作用域

    块级作用域可解决的问题:

    (1)重新声明变量

      在块级外使用var声明一个变量,在块级里也使用var声明同名的变量,会将外部的变量的值也修改了。

      在块级外使用var声明一个变量,在块级里也使用let声明同名的变量,不会修改外部同名的变量的值。

    (2)在函数内声明变量时候,使用var和let是相同的效果

    (3)在函数外使用var和let声明变量都有全局作用域

    Html中的全局变量:

      使用JavaScript的情况下,全局作用域是JavaScript环境。在HTML中全局作用域是window对象。通过var关键字定义的全局变量属于window对象,通过let关键字定义的全局变量不属于window对象。

    注意:

    • 允许在程序的任何地方使用var重新声明JavaScript变量。
    • 在相同的作用域,或在相同的快中,通过let重新声明一个var变量是不允许的。
    • 在相同的作用域,或在相同的快中,通过let重新声明一个let变量是不允许的。
    • 在相同的作用域,或在相同的快中,通过var重新声明一个let变量是不允许的。
    • 在不同的作用域或者块中,通过let重新声明变量是允许的

    通过var声明的变量会被提升到顶端,可以在声明变量之前就使用它

    通过let声明的变量不会被提升到顶端,在声明它之前就使用它会出错。

     

  • 相关阅读:
    CDH中flume是已经启动着了…
    CDH中,执行HIVE脚本表联查权限问题。。
    linux screen 命令详解(未验证+研究)
    004ICMP-type对应表
    003iptables 命令介绍
    002利用zabbix监控某个目录大小
    Nginx图片剪裁模块探究 http_image_filter_module
    linux增加自定义path和manpath
    TortoiseSVN中图标的含义
    Linux SVN 搭建(YUM)安装
  • 原文地址:https://www.cnblogs.com/zhilili/p/12788368.html
Copyright © 2011-2022 走看看