ES6--Const 命令

数学应用题中,用方程式解决问题,在方程时,会设未知数,常数。

Js中我们常用let或者var声明变量,ES 6中有 const 用来声明常量。

2.3.1 Const 命令 基本用法

1、const 声明一个只读的常量,一旦声明,常量不可改变。且声明时必须赋值,立即初始化

const PI = 3.1415
      PI = 3
 //执行后报错  类型错误:常数变量赋值

const foo 
 //执行会报错  语法错误: SyntaxError: Missing initializer in const declaration

2、const 声明常量,只在块级作用域中起作用。

3、const 声明常量,不可 变量提升

4、const 声明常量,不可重复声明

//2、只在块级区域内有效
if (true) {
  const max = 10
}
console.log(max) 
//报错 max is not defined

//3、不支持变量提升
if (true) {
 console.log(max)
 const max = 10
}
//报错 referenceError

//4、声明变量不能重复声明

var message = 'hello'
let age = 30
const message = 'goodbye'
const age = 32
//报错 syntaxError

以上2、3、4与 let 的 用法 是一样的。

 

2.3.2 Const 本质

const 实际上保证的并不是变量的值不改动,而是变量只想的那个内存地址不得改动

声明的常量 可分为两种:

第一种 简单类型的数据,如数值、布尔值、字符串,常量值被保存在变量所指向的内存地址

第二种 复合型数据,如数组、对象,变量所指向的内存地址保存的是它的指针,对于变量值的变化是无法控制的。

所以这里要慎重使用const声明对象和数组

//第二种 声明复合型数据

const foo = {}
foo.prop = 'moon'
foo.prop = 'sun'
//上面是可以添加属性的
foo = {}
//这里改变了常量对象foo的指针,报错:  Assignment to constant variable.

const arr = []
arr.push = 'banana'
arr.length = 0
//上面是可以添加元素
arr = ['fruit']

//这里改变了常量对象arr的指针,报错:  Assignment to constant variable.

 

2.3.3 ES6声明变量有6种方法

ES5中有 var 和 function 命令声明变量

ES6中添加了 let 和 const,后面还会有  import  和  class  所以一共6种

 

2.4 顶层对象的属性

顶层对象在浏览器环境中指的是 
ES5 中顶层对象指的是 window,

你可能感兴趣的:(es6)