1.ES6的概念
ES6:ESMAScript 6 新的javascript语法标准,2015正式推出,为了hs更加快捷与方便
2.变量声明
var:全局作用域
函数作用域
没有 if,switch,for,while,do,else作用域
会变量提升
let
局部变量 :1.局部作用域,(在一对{}启用)
2.不能变量提升
3.在一个作用域里面不能重复使用
const 常量:1.let 一样
2. 变量名建议大写
3. 声明必须赋值
4.值类型不允许修改
3.解构
数组:var [a,b,,c=20,...rest]=[1,2,3,4,5,6];
[] 解构符号
,一位
...rest 剩余
c10 默认参数
(有顺序的)
对象:var{name,age,leg=20,...rest}=obj;
{}符号
没有顺序
...rest 剩余
4.浅拷贝
类型拷贝,引用类型是引用
浅拷贝 用for in
var obj1 = {};
for(var k in obj){
// 实现遍历浅拷贝
obj1[k] = obj[k];
}
ES6应用:
var obj = {name:"mumu",age:"18",friend:["A","B","C"]}
es6扩展:
var obj3 = {...obj};
5.深拷贝
深拷贝,值类型,与引用类型都拷贝(互相不影响)
01 对象转字符JSON.stringify,字符串转json JSON.parse()
JSON数据格式只支持:string,number,null,undefined,array,object
var obj1 = JSON.parse(JSON.stringify(obj))
6.值类型
js中存储数据 内存有两种不同的空间 堆,栈
值类型 key 与value 都存储在栈