一:常用语法:
1:声明变量let和const
let声明变量不存在预解析
console.log(flag)
let flag = 456;
let声明的变量不允许重复(在同一个作用域内)
let faag = 123;
let faag = 456;
console.log(glag)
ES6引入了块级作用域
块内部的变量,在外部是不可以访问的
if(true){
left flag = 123;
console.log(glag);可以访问
}
console.log(glag);无法访问到if块内
{
let flag = 111;
console.log(flag);//可以访问
}
console.log(flag);//无法访问
for (let i = 0; i < 3; i++) {
for循环括号中声明的变量只能在循环体中使用
console.log(i);
}
在块级作用域内部,变量只能先声明再使用
在块级作用域内部,变量也不存在预解析
if(true){
console.log(flag);//无法解析
let flag = 123;
}
-------------------------------------------------------------
const用来声明常量
const声明的常量不允许重新赋值
const n =1;
n = 2; //错误
const声明的常量必须初始化
====================================================================
二:变量解构赋值
var赋值
var a = 1;
var b = 2;
var c = 3;
var a=1,b=2,c=3;
---------------------------------------------------------------------
ES6赋值
数组的解构赋值,赋值根据顺序进行
let [a,b,c] = [1,2,3];
console.log(a,b,c);
let [a=111,b,c] = [1,2,3];//a=111是默认值
对象的解构赋值
let {foo,bar} = {foo : 'hello',bar : 'hi'}; //{}里面数据先后顺序没有影响
console.log(foo,bar);
对象属性别名(如果有了别名,原来名字就无效了)
let {foo:abc,bar} = {bar : 'hi',foo : 'nihao'}
console.log(abc,bar)
abc是foo的别名
字符串的解构赋值
let [a,b,c,d,e] = "hello";
console.log(a,b,c,d,e)
把单词拆开成字符。如果前面变量个数和后面字符不对用,会把后面字符省略调。