通过上一节的环境搭建完成,接下来我们就可以愉快的探索ES6的新世界了!下面我们从新的声明方式开始:

在ES6里新加了两种声明方式:let 和 const,以前我们都是用var去作声明,接下来我们一一比较下他们的区别:

一、var  :全局声明

我们用var 来声明一个msg的变量

 var msg = "hello es6";
console.log(msg);

这时我们可以看到控制台输出的是 hello es6,接下来我们在下面用区块的方式再声明一个msg,并给它赋值

 var msg = "hello es6";
console.log(msg);
{
var msg = "哈罗ES6"
}
console.log(msg);

此时控制台输出的是  哈罗ES6  ,这说明var并没有受区块的局部声明影响,被污染了

一、var  :局部声明

我们直接拿上面的代码来作演示,将var改成let,看控制台输出的结果

 let msg = "hello es6";
console.log(msg);
{
let msg = "哈罗ES6"
}
console.log(msg);

我们看到控制台输出的结果是  hello es6,跟上面var的结果不一样,说明区块里的let声明并未受到影响,接下来我们再来看一个例子

 var msg = "hello es6";
console.log(msg);
{
let msg2 = "哈罗ES6"
}
console.log(msg2);

这次我们将区块里的msg改成了msg2,并且输出它,可是控制台却报错了:

Uncaught ReferenceError: msg2 is not defined     

提示我们找不到msg2,说明msg2在区块里只是局部声明了,对外面的大环境无影响

三、const:声明常量

常量的意思是以后不会再变了,下面,我们同样用例子来说明:

 const msg = "hello es6";

 console.log(msg);   //控制台输出了 hello es6
 const msg = "hello es6";

 var msg = "哈罗ES6";

 console.log(msg);

这次我们用npm run build编译始终报错,无法编译了,原因就是我们const声明的变量是不可以改变的

总结:

三种声明方式:

var  全局的,会污染到区块,同时区块里的也会污染到外面的

let   局部的,不会受污染,区块里的和外面的互不干扰

const  声明常量,声明后就不能改变了

ES6第二节:新的声明方式的更多相关文章

  1. 【系统学习ES6】第一节:新的声明方式

    [系统学习ES6] 本专题旨在对ES6的常用技术点进行系统性梳理,帮助大家对其有更好的掌握.计划每周更新1-2篇,希望大家有所收获. 以前用ES5时,声明变量只能用var.ES6的出现,为我们带来了两 ...

  2. ES6系列_2之新的声明方式

    在ES5中我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种声明方式. (1)var:它是variable的简写,可以理解成变量的意思. (2)let:它在英 ...

  3. 二.ES6新的声明方式

    前言: 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种声明方式了. 字面理解ES6的三种声明方式: var:它是variable的简写,可以理解成变量 ...

  4. 第二节(RequestMapping请求方式)学习尚硅谷-springmvc视频教程

    项目中,创建测试类SpringMVCTest @Controller @RequestMapping("/springmvc1") public class SpringMVCTe ...

  5. ES6 - 基础学习(2): 新的变量声明方式 let 与 const

    ES6)新增加了两个重要的 JavaScript 关键字:let 和 const.以前声明变量时只有一种方式:var,ES6对声明方式进行了扩展,现在可以有三种声明方式了. 1.var:variabl ...

  6. 第六节 事务XML方式[声明方式]

    事务管理: 管理事务,管理数据,数据完整性和一致性 事务[业务逻辑] : 由一系列的动作[查询书价格,更新库存,更新余额],组成一个单元[买书业务], 当我们动作当中有一个错了,全错~ ACID 原子 ...

  7. es6 新增变量声明方式

    let 与 var var var声明的变量拥有全局作用域或者局部作用域 在全局中声明变量即为全局变量 在函数中声明变量即为局部变量 而var在使用过程中也逐渐暴露出许多问题 var的几大问题 变量提 ...

  8. ES6 有什么新东西

    ES6 有什么新东西? 你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本 ...

  9. Notes 20180310 : String第二讲_String的声明与创建

    1  字符串的声明与创建 学习String的第一步就是创建(声明)字符串,我们在这里之所以分为创建和声明(其实是一个意思,都是创建字符串,但两者却有本质的区别)是因为String是一个很特殊的类,它的 ...

随机推荐

  1. Chrome Foundation Services

    Chrome Foundation Services Contents Overview API Standards Service Directory Structure Dependencies ...

  2. 一篇文章助你理解Python2中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...

  3. Mac sublime快捷键操作

    1.打开命令面板 command + shift + p 2.打开关闭side bar command + k , command + b 3.打开新sublime窗口 command + shift ...

  4. 【Git 二】Windows|Mac 安装 Git

    Windows 或 Mac 上安装 Git 相对于 Linux 上安装来说步骤是简便一些的.Linux 安装步骤见:[Git 一]Linux安装Git 一.Windows 安装 Git 直接下载对应 ...

  5. JAVA-截取字符串两边指定字符

    工具类: /** * 工具类 */ public class Tool { /** * 截取两边指定的字符 * @param character * @param symbol * @return * ...

  6. 由防止表单重复提交引发的一系列问题--servletRequest的复制、body值的获取

    @Time:2019年1月4日 16:19:19 @Author:QGuo   背景:最开始打算写个防止表单重复提交的拦截器:网上见到一种不错的方式,比较合适前后端分离,校验在后台实现: 我在此基础上 ...

  7. 紫书 例题 10-22 UVa 1640(数位统计)

    这道题的题解有几个亮点 一个是每次只统计一个数字来简化思维 一个是统计当前位数的时候分三个部分来更新答案 具体看代码,有注释 #include<cstdio> #include<cs ...

  8. Python 生成器 Generator 和迭代器 Iterator

    #最近一周刚开始接触python,基本的语法,和使用特性和Java差别还是蛮大的. 今天接触到Python的迭代器和生成器有点不是很明白,所以搜索了先关资料整理了一些自己的理解和心得 简述(Profi ...

  9. HDU 4906 Our happy ending

    题意: Given a sequence a_1,a_2,...,a_n, if we can take some of them(each a_i can only be used once), a ...

  10. Apache CXF实战之二 集成Sping与Web容器

    本文链接:http://blog.csdn.net/kongxx/article/details/7525481 Apache CXF实战之一 Hello World Web Service 书接上文 ...