首页 > 其他分享 >01-ES6语法:块作用域构造let

01-ES6语法:块作用域构造let

时间:2023-06-29 13:35:40浏览次数:36  
标签:ES6 01 console 作用域 vip amount let var


这里所说的ES6是ECMAScript 6的简写,它是由JavaScript演变而来的。1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会(ECMA)进行标准化。ECMA-262的第一个版本于1997年6月被ECMA组织采纳,这也是ECMAScript(简称ES)的由来。

块级声明用于声明在指定块的作用域之外无法访问的变量。这里的块级作用域是指函数内部或者字符{}内的区域。

如下的代码,使用var定义的变量:

<script>
    // 计算价格1。
    function calculate1(vip) {
        var amount = 0;
        if (vip) {
            var amount = 1;
            var amount = 100;
            var amount = 1000;
            console.info(amount);
        }
        console.info(amount);
    }
    calculate1(true);
</script>

最终输出的结果如下图所示:

01-ES6语法:块作用域构造let_作用域

可以看到amount变量被最后的定义覆盖掉了。

在ES6中,用let限制块级作用域,而var限制函数作用域。代码如下:

<script>
    // 计算价格2。
    function calculate2(vip) {
        var amount = 0;
        if (vip) {
            // let amount = 1;
            // let amount = 100;
            let amount = 1000;
            console.info(amount);
        }
        console.info(amount);
    }
    calculate2(true);
</script>

上述代码输出的结果如下图所示:

01-ES6语法:块作用域构造let_作用域_02

这说明,块{}中使用的let声明的amount变量虽然和外部的同名,但并没有覆盖外部amount的变量值。

另外有一点需要注意的是,如果在同一个块内部使用let同时声明几个同名的变量则会出现如下的错误:

01-ES6语法:块作用域构造let_开发语言_03

标签:ES6,01,console,作用域,vip,amount,let,var
From: https://blog.51cto.com/u_3319687/6581492

相关文章

  • 04-ES6语法:默认参数和rest参数
    本文我们分别介绍ES6中的默认参数和rest参数,下面我们分别进行说明和演示。下面是简单的屏幕分享,不爱看文字的同道中人可以看视频。-_-一、默认参数首先,我们先看看在ES5中是如何定义默认参数的方式,代码如下://ES5的默认参数值。functioncreateBox(width,height,color){......
  • 02-ES6语法:const常量
    ES6标准中增加了新的关键字const来定义常量。使用const定义的常量,在后续的代码中将无法被改变。下面是简单的屏幕分享,不爱看文字的同道中人可以看视频。-_-一、基本常量首先我们来看下如何通过这个关键字定义常量,代码如下:<script>constPI=3.14159;console.info(PI)......
  • 03-ES6语法:模板字面量(Template Literals)
    ES6引入了模板字面量(TemplateLiterals),对多行字符串和字符串占位符的操作进行了增强。下面我们分别进行说明和演示。下面是简单的屏幕分享,不爱看文字的同道中人可以看视频。-_-一、多行字符串(Multi-lineStrings)首先我们来看下ES5中是如何表示多行字符串的,示例代码如下://ES5......
  • 01 pixi.js入门
    写在前面:写该笔记时pixi.js版本为V7.2.41.安装npminstallpixi.js或者<scriptsrc="https://cdn.jsdelivr.net/npm/[email protected]/dist/pixi.min.js"></script>又或者<scriptsrc="https://unpkg.com/[email protected]/dist/pixi.min.js"><......
  • 光脚丫学LINQ(014):LINQ to SQL简介
    视频演示:http://u.115.com/file/f29f7838f6 LINQtoSQL是.NETFramework3.5版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。说明关系数据显示为由二维表(关系或平面文件)组成的集合,其中公共列将表互相关联起来。若要有效地使用LINQtoSQL,您必须略为熟悉关......
  • 光脚丫学LINQ(001):获取数据源
    视频演示:http://u.115.com/file/f2b79e6286 本主题简要介绍LINQ查询表达式,以及您在查询中执行的一些典型类型的操作。下面各主题中提供了更详细的信息:获取数据源在LINQ查询中,第一步是指定数据源。像在大多数编程语言中一样,在C#中,必须先声明变量,才能使用它。在LINQ查询中,最......
  • 英特尔CEO欧德宁:2010年企业PC支出将出现增长
     本文发表于2009-10-2802:0311/6/200910:36:19AM北京时间10月27日消息,据国外媒体报道,英特尔CEO保罗欧德宁(PaulOtellini)今天表示,2010年企业在PC上的支出将出现增长。欧德宁说:2010年,企业在PC上的支出将显著提高,这为我们提供了一个非常好的机遇。欧德宁没有披露2010年PC销量。本......
  • NodeJS系列(6)- ECMAScript 6 (ES6) 语法(四)
    本文在“NodeJS系列(2)-NPM项目Import/ExportES6模块”的npmdemo项目的基础上,继续介绍并演示Promise对象、Generator函数、async函数等ES6语法和概念。NodeJSES6:https://nodejs.org/en/docs/es6ECMA:https://www.ecma-international.org/publications-and-standard......
  • NodeJS系列(5)- ECMAScript 6 (ES6) 语法(三)
    在“NodeJS系列(3)-ECMAScript6(ES6)语法(一)”和“NodeJS系列(4)-ECMAScript6(ES6)语法(二)”里,我们介绍并演示let、const、Symbol、函数扩展、类等ES6语法和概念。本文在“NodeJS系列(2)-NPM项目Import/ExportES6模块”的npmdemo项目的基础上,继续介绍并演示Ref......
  • C#C++联合debug-vs2019
    转自:https://blog.csdn.net/qq_41375318/article/details/127717701vs2019中C#和c++的dll进行联合调试*Major*已于2022-11-0617:29:51修改462收藏2文章标签:c#版权vs2019中C#和c++的dll进行联合调试一C++这边属性的输出目录设置为C#的Debug目录二调试设为C#的exe路径......