javascript是一门编程语言,javascript会有一个标准化规范,我们称之为ecmascript,简称es。每个浏览器都会支持相应版本的es。也就是说只要浏览器支持某个版本的es,那么这个版本对应的js代码就能在浏览器上运行。
简写
箭头函数
promise
解构
const,let
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
//const 用于声明常量
const name = 'zhangsan'
name = 'lisi' //再次赋值会报错
//报错TypeError: Assignment to constant variable.
console.log(name)
let
- 代码块内有效
// let 是在代码块内有效,var 是在全局范围内有效:
if (true) {
let a = 10;
var b = 10;
}
console.log(a) // ReferenceError: a is not defined
console.log(b) // undefined
- 不能重复声明
// let 重复声明会报错,var 可以重复声明多次
let a = 1;
let a = 2;
var b = 3;
var b = 4;
a // Identifier 'a' has already been declared
b // 4
- 不存在变量提升
// 变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错
console.log(a); //ReferenceError: a is not defined
let a = "apple";
// 变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有赋值,所以会输出 undefined。
console.log(b); //undefined
var b = "banana";
看看下面输出值是什么?
for (var i = 0; i < 10; i++) {
setTimeout(function(){
console.log(i);
})
}
// 输出十个 10
for (let j = 0; j < 10; j++) {
setTimeout(function(){
console.log(j);
})
}
// 输出 0123456789