let与const
ES6为了解决被广大程序员诟病已久的缺少块级作用域的问题,新增了let与const
暂时性死区
使用let与const声明的变量与其所在的块级作用域相绑定
var o=1;
{
console.log(o) //ReferenceError: Cannot access 'o' before initialization
let o=2;
}
解构赋值
- 数组解构赋值
var arr = ["I", "am", ".7\\0"]
//变量多了则多出的为undefined,数组元素多了则“截断”数组
var [a, b, c] = arr; //一定需要[]
console.log(a, b, c) //I am .7\0
- 对象解构
var obj = {
name: ".7\\0",
age: "20",
sex: "Man"
}
//变量多了则多出的为undefined,数组元素多了则“截断”对象
var {name,age,sex} = obj //必须有{}
console.log(name, age, sex) //.7\0 20 Man
箭头函数 ()=>
ES6引入箭头函数,箭头函数没有arguments(弃用),也没有this
在箭头函数中使用的this是上下文的this
var obj = {
myName: ".7\\0",
age: "20",
sex: "Man",
sayHello: () => {
console.log(this.myName)
}
}
obj.sayHello() //undefined
在写上面代码的时候最开始myName写的是name,结果很玄学的打印空串,最后发现window中居然有name这个属性
剩余参数
没什么好说的,直接show code
- 在函数中使用
(function arguments(...args)
{
console.log(args)
})(1,2,3,4,5,6) //(6) [1, 2, 3, 4, 5, 6]
- 与解构配合使用
var arr = ["I", "am", ".7\\0"]
var [a, ...b] = arr; //一定需要[]
console.log(a, b) //I (2) ["am", ".7\0"]
扩展运算符
扩展运算符将数组或对象转换为用逗号分割的参数序列
let arr=[1,2,3]
console.log(...arr) //...arr就相当于把数组变成了1,2,3
//=============================================
let obj = {
myName: ".7\\0",
age: "20",
sex: "Man",
sayHello: () => {
console.log(this.myName)
}
}
console.log({
...obj //一定要有{},否则报错
})
- 奇技淫巧
-- 合并数组:
[...arr1,...arr2]
-- 转换类数组为数组:
let dom=document.getElementsById('top')
[...dom]
//Array.from()也可以做到
Array.from(dom)
几个数组方法
- find():查找第一个满足条件的元素,找到了返回该元素,没有则返回undefined
arr.find(item=>{
return item===xxx
})
- findIndex():同上,但返回值为该元素下标
- includes():查找数组中是否包含该元素,返回true/false
模板字符串
使用` `括起来的字符串是模板字符串,可以使用${}动态绑定值
let s=`hello ${str}`,str=".7\\0"
console.log(s) //hello .7\\0
但是要注意的是,变量的声明一定要在模板字符串的前面
几个字符串方法
- startsWith
- EndWith
set
set 是一种数据结构,应该和c++STL中的一样,采用红黑树
- 几个方法
-add(value)
-delete(value)
-has(value)
-clear()
-forEach(value=>{do something...}) - 数组去重:
console.log(new Set(["a","b","a","b"])) //a,b
原文地址:https://www.cnblogs.com/c46550/p/12838489.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。