1.let和const

1.1.let和块级作用域

在es5中,js的作用域分为全局作用域和局部作用域,通常是用函数来区分的,函数内部属于局部作用域,在es6中新增了块级作用域的概念,使用{}括起来的区域是一个块级作用域

{
var a = 10
}
// 输出10
console.log(a)

如果上述代码中定义变量的时候使用let,在外面使用变量a就会报错

{
let a = 10
}
// 以下输出会报错
console.log(a)

es6中新增了块级作用域,let定义的a只能在当前的{}中使用,在括号外面会报错

注意: 不能重复去定义一个变量,例如,下面这种写法就会报错

let b = 10
let b = 20

如上代码,重复定义一个变量b会报错

1.2.const命令

const命令和let命令的区别是const定义的是常量,let定义的是变量,常量通常是不会被修改的

# 定义常量PI
const PI = 3.1415926
console.log(PI)

const 也是在当前块级作用域中有效

{
const PI = 3.1415926
}
console.log(PI)

如果像上面代码中那样写会报错,const在块级作用域中定义,就不能在外面打印,否则会报错

注意1:常量是不能被修改的(存储基本数据类型的时候),如果试图去修改它,会报错,但是如果存储的是对象,那么引用不可以被改变,至于对象里面的数据如何变化,是没有关系的

const PI = 3.14
//这里会报错,因为存储的是基本数据类型 字符串
PI = 3.2 //这样写是会报错的,引用关系被改变了
const BASE = {}
BASE = {} //这里直接赋值一个新对象 引用关系发生变化 会报错 //如果只改变对象中的数据,那是不会报错的,例如下面这样写 BASE.a = 123 //这里只是给对象添加了属性 并没有改变对象引用

注意2: const 也不能重复定义,否则会报错

const PI = 3.14
const PI = 3.14 // 这里也会报错

注意3: const定义常量时必须赋值

const PI
PI = 3.14 //这里也会报错

视频教程地址:http://edu.nodeing.com/course/50

es6+最佳入门实践(1)的更多相关文章

  1. es6+最佳入门实践(14)

    14.模版字符串 模版字符串(template string)是增强版的字符串,定义一个模版字符串需要用到反引号 let s = `这是一个模版字符串` console.log(s) 14.1.模版字 ...

  2. es6+最佳入门实践(12)

    12.class基础用法和继承 12.1.class基础语法 在es5中,面向对象我们通常写成这样 function Person(name,age) { this.name = name; this ...

  3. es6+最佳入门实践(10)

    10.Generator 10.1.Generator是什么? Generator函数是ES6提供的一种异步编程解决方案.在它的内部封装了多个状态,因此,又可以理解为一种状态机,执行Generator ...

  4. es6+最佳入门实践(9)

    9.Iterator和for...of 9.1.Iterator是什么? Iterator又叫做迭代器,它是一种接口,为各种不同的数据结构提供统一的访问机制.这里说的接口可以形象的理解为USB接口,有 ...

  5. es6+最佳入门实践(8)

    8.Promise 8.1.什么是异步? 要理解异步,首先,从同步代码开始说 alert(1) alert(2) 像上面的代码,执行顺序是从上到下,先后弹出1和2,这种代码叫做同步代码 alert(0 ...

  6. es6+最佳入门实践(7)

    7.set和map数据结构 7.1.什么是set? Set就是集合,集合是由一组无序且唯一的项组成,在es6中新增了set这种数据结构,有点类似于数组,但是它的元素是唯一的,没有重复 let st = ...

  7. es6+最佳入门实践(6)

    6.Symbol用法 6.1.什么是Symbol? Symbol是es6中一种新增加的数据类型,它表示独一无二的值.es5中我们把数据类型分为基本数据类型(字符串.数字.布尔.undefined.nu ...

  8. es6+最佳入门实践(5)

    5.对象扩展 5.1.对象简写 在es5中,有这样一种写法 var name = "xiaoqiang"; var age = 12; var obj = { name : nam ...

  9. es6+最佳入门实践(4)

    4.函数扩展 4.1.参数默认值 默认参数就是当用户没有传值的时候函数内部默认使用的值,在es5中我们通过逻辑运算符||来实现 function Fn(a, b) { b = b || "n ...

  10. es6+最佳入门实践(3)

    3.数组扩展 3.1.扩展运算符 扩展运算符用三个点(...)表示,从字面上理解,它的功能就是把数组扩展开来,具体形式如下: let arr = [1, 2, 3]; console.log(...a ...

随机推荐

  1. asp.net core-项目开发中问题汇总

    无法启动进程\Program File\dotnet\dotnet.exe.进程创建失败,出现错误:系统找不到指定的文件如下图: 解放方案:1.修改系统环境变量 2.重启电脑

  2. Python代码结构——顺序、分支、循环

    ## 顺序结构 - 按照从上到下的顺序,一条语句一条语句的执行,是最基本的结构 ## 分支结构 if condition: statement statement ... elif condition ...

  3. python中的文件操作小结1

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- f=open("test_1",'r',encoding="utf-8&q ...

  4. 在intellij idea 里来回跳转查询方法

    在intellij idea 里来回跳转查询方法,在不知道快捷键的时候真是抓狂. 看到key map中的快捷键 后退back  ctrl +alt + ← 或者button4 click 前进forw ...

  5. PTA 7-10(图) 旅游规划 最短路问题

    7-10(图) 旅游规划 (25 分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果 ...

  6. JS中调用android和ios系统手机打开相机并可选择相册功能

    编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/57626154 实现android手机打开相机选择相册 ...

  7. 11.1,nginx集群概念

    集群介绍 为什么要用集群      

  8. 9 与python2交互

    1.创建外键 # 创建room表 mysql> create table rooms(id )); Query OK, rows affected (0.01 sec) #创建学生表 mysql ...

  9. TP5 中出现 No input file specified

    之前用php5.4 更新至php7之后原tp5项目出现 No input file specified 修改方法: 打开public目录下的.htaccess文件,把:RewriteRule ^(.* ...

  10. Trident学习笔记(二)

    aggregator ------------------ 聚合动作:聚合操作可以是基于batch.stream.partiton [聚合方式-分区聚合] partitionAggregate 分区聚 ...