数学应用题中,用方程式解决问题,在方程时,会设未知数,常数。
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,