javaScript-系统知识点【 ES6 新语法】
ES6 操作对象相关的新语法
遍历
// for in (遍历对象)
var obj = { a:1, b:2, c:3 }
for (let key in obj) {
console.log(key)
}
// a b c
// for of (遍历数组)
const array1 = [ 'a', 'b', 'c' ]
for (const val of array1) {
console.log(val)
}
// a b c
获取对象 key 值、val 值
// Object.keys()
var obj = { foo: 'bar', baz: 42 }
Object.key(obj) // ["foo", baz]
// Object.values()
var obj = { foo: 'bar', baz: 42 }
Object.values(obj) // ["bar", 42]
ES6 有哪些新东西
- const let、变量提升、块级作用域
- 箭头函数
- 模板字符串
- 一些 API,map、filter、forEach、reduce
- promise
- 函数默认参数,剩余参数
- 新的数组、对象操作 API
- 解构, 可以避免在对象赋值时产生中间变量
- 扩展运算符 […arr]
- 类 class
- 迭代器
- 装饰器
JS进阶 | ES6知识点解析)
async/await 是 ES7 的语法
箭头函数函数 与 普通函数的区别?
- this 指向不同, 且箭头函数 this 无法改变 (因为 箭头函数本身就没有原型,所以也没有所谓的 this)
- 写法不同, 且箭头函数都是匿名函数
- 箭头函数、没有
prototype
、没有自己的this
指向、不可以使用arguments
、自然不可以new
- 普通函数的 this ,谁调用了这个函数,this 就指向谁,要开运行时所处的环境
let name = 'wyy'
let obj = {
name:"wangcai",
getName: function(){
console.log(this)
function test(){
console.log(this)
}
test() // window.test( )
}
}
obj.getName()
ES6中 Set 和 Map 的区别
区别
-
初始化需要的值不一样,Map需要的是一个二维数组,而Set 需要的是一维 Array 数组
-
Map 和 Set 都不允许键重复
-
Map的键是不能修改,但是键对应的值是可以修改的;Set不能通过 迭代器 来改变Set的值,因为Set的值就是键
-
Map 是键值对的存在,值也不作为健;而 Set 没有 value 只有 key,value 就是 key
优点
- 最大优点就是运行时间少大大提高了性能