声明
声明变量:var (ES5语法) let (ES6语法)声明常量:const (ES6语法)
特性
1、支持 函数作用域
2、支持 JS预解析 (所谓变量提升)
3、支持 重复声明 (同域同名变量)
1、函数作用域(局部作用域)
function show(){var a = '34';
}
console.log(a); //underfind2、JS预解析
console.log(name); //underfind
var name = '1234';3、重复声明
var a = '123';
var a = '4565';
特性
1、支持 块作用域
2、不支持 JS预解析
3、不支持 重复声明 (同域同名变量)
1、块作用域(局部作用域)
if(true){var a = '34';
}
console.log(a); //underfind2、不支持JS预解析
必须声明后才能使用,否则报错
从ES6开始引入常量概念
特性
1、let所有特性
2、声明时必须赋值,否则报错
3、定义常量后,再也不能更改值
1、声明时必须赋值,否则报错
const a; //报错
const a = 11; //正确2、定义常量后,基本类型是不能改了,但如果是对象或数组,是可以改对象内或数组内的值
const a = ['22','bb'];
a[0] = '你好'; //['你好','bb'];
var a; //undefined
let b; //undefined
解构赋值
对象
与 数组
var obj = {name:"bbb",age:12
};
var name = obj.name;
var age = obj.age;var arr = [123,'wtao'];
var a = arr[0];
var b = arr[1];
let obj = {name:"bbb",age:12
};
let {name,age} = obj;
console.log(name);
console.log(age);let arr = [123,'wtaddo'];
let [name,age] = arr;
console.log(name);
console.log(age);
函数