ES6简写
声明变量
let const
let与var的区别
-
let在变量定义前不能使用
-
变量重名 var后面的会覆盖前面的 let 则报错
-
块级作用域{} 只能在大括号内使用
let与const区别
let 变量
const 常量(其与var区别于let一样)
-
let可以再次修改,const不行
let name="1" name="2"//2 -
const obj={ name="111"//此处可以改变 }//const就想一个盒子属于一个地址一个位置
应用场景 选项卡中记住选中位置
箭头函数
//原来定义方法
var test1=function(){
console.log("1111")
}
//现在定义fangfa
vartest2=()=>{
console.log(22222)
}
test1()
test2()
特点
-
只有一个形参的时候()可以省略
-
{}在只有一句代码时可以省略
-
没有arguments
-
this指向问题
箭头函数没事this
箭头函数this是父级作用域的
var list=a=>100*a
解构赋值
解释:快速的从对象和数组中获取里面的成员
var arr=["xiaoming","teichui","shanzhen"]
ler[x,y,z]=arr//若想要第一个则输入下x,想要第二个则输入y
console.log(x,y,z)
交换位置
var a=10
var b=20
var[b,a]=[a,b]
console.log(a,b)
多维度数组选择
var arr2=[1,2[3,4,[5]]]//多维度数组
console.log(arr2[2][2][0])
//排序按照0,1,2排列
多维度赋值
在对象上的用处
不用多次取
var obj={
name:"1"
age:10
location:"dsw"
}
//原来
document.write(obj.name)
document.write(obj.age)
document.write(obj.location)
//现在
let {name,age,location}=obj
//相比之下更加的简短
展开运算符
连接两个数
...展开数组
//原来的
var a=[1,2,3]
var b=[4,5,6]
console.log(a.concat(b))
//现在
var a=[1,2,3]
var b=[4,5,6]
var c=[...a,...b]
console.log(c)
改变数组但不影响原数组
slice concat不传值
...复制
var a=[1,2,3]
var c=[...a]
console.log(a,b)
...参数 实参 形参
var test=function(...arr){
console.log(arr)
}
test(1,2,3,4,5)
...伪数组转换
function test(){
console.log(arguments.map)//伪数组不能用map
}
test(1,2,3,4,5)
//之前
function test(){、
var arr=Array.from(argyments)
console.log(arr.map)
}
test(1,2,3,4,5)
//现在
function test(){、
var arr=[...arguments]
console.log(arr)
}
test(1,2,3,4,5)
...对象
var obj1={
name;“决定是否”
age:23
}
var obj2={
location;"dfsjfd"
}
var obj={
...obj1,
...obj2
}
console.log(obj)
模块化语法
//导出
export{
A1,
A2,
test,
A_A
}
//导入
<script type="module">
import{A1,A2,testA_A}from'./module/1.js'
A1()
A2()
test()
</script>
//导入
<script src "./module/c.js" type="module"><script>
引用外部文件