通过上一节的环境搭建完成,接下来我们就可以愉快的探索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. Oracle的Clob转换类型

    import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; imp ...

  2. HDU-2050 折线分割平面 找规律&递推

    题目链接:https://cn.vjudge.net/problem/HDU-2050 题意 算了吧,中文题不解释了 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线 ...

  3. maven+spring-data-jpa环境搭建

    转自http://www.cnblogs.com/007sx/p/5658194.html 首先看一下项目结构: 所用到的jar(pom.xml): <project xmlns="h ...

  4. 紫书 例题 10-10 UVa 10491(概率计算)

    公式很好推,表示被高中生物遗传概率计算虐过的人 这个公式简直不需要动脑 #include<cstdio> using namespace std; int main() { double ...

  5. U-boot 启动内核

    1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作, ...

  6. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  7. Hadoop集群管理--保证集群平稳地执行

    本篇介绍为了保证Hadoop集群平稳地执行.须要深入掌握的知识.以及一些管理监控的手段,日常维护的工作. HDFS 永久性数据结构 对于管理员来说.深入了解namenode,辅助namecode和da ...

  8. HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 Problem Description There are n apple trees plan ...

  9. ATL中宏定义offsetofclass的分析

    近日学习ATL,通过对宏定义offsetofclass的解惑过程.顺便分析下虚函数表,以及通过虚函数表调用函数的问题. 1 解开ATL中宏定义offsetofclass的疑惑 #define _ATL ...

  10. 20.发送http请求服务 ($http)

    转自:https://www.cnblogs.com/best/tag/Angular/ 服务从代码直接与服务器进行交互,底层是通过实现,与中http服务从AngularJS代码直接与Web服务器进行 ...