ES6-day02
1.变量/常量声明
let 声明变量
const 声明常量
特性
. 变量声明不会被提升,即在变量声明之前无法使用该变量
. 具有局部作用域,即let声明的变量只能在对应代码块中使用
. 不允许重复声明。
. const声明的变量在声明的时候就需要赋值,并且只能赋值一次,不能修改。
2.解构(模式匹配)
1)介绍:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值。
2)数组解构
let [a, b, c] = [1,2,3]
let [a, b] = [1,2,3]
使用拓展运算符(用在=左边聚合作用,返回一个新数组)
let [a, ...b] = [1,2,3] // b = [2, 3]
设置默认值
let [a=1] = []
let [a=myFun()] = []
3)对象解构
let { user:user, age:age} = {user:'zhangsan',age:12}
let { user, age } = {user:'zhangsan',age:12}
设置默认值
let { a, b=3} = {1}
4)字符串解构
数组解构:从字符串里提取字符
let [a, b, c] = 'hello'; a='h' b='e' c='l'
对象解构:从字符串原型中解构属性和方法
let { length, toString } = 'hello'
5)number解构
let { valueOf } = 12 valueOf === Number.prototype.valueOf()
6)boolean解构
let { valueOf } = true valueOf === Boolean.prototype.valueOf()
3.对象
简写
let name = "zhangsan";
let obj = {
name,
sayName() {}
}
API拓展
Object.is(a,b) 判断a,b两个值是否一样,类似于===
Object.assign() 深复制或者合并对象
Object.assign(obj1, obj2) 深复制,将obj2复制给obj1
Object.assign(obj1, obj2, obj3) 对象合并,将obj2、obj3合并后复制给obj1
Object.setPrototypeOf(obj1, obj2) 为目标对象设置原型,将obj2设置成obj1的原型
Object.getPrototypeOf(obj1) 获取目标对象的原型
Object.keys() 返回对象属性名组成的数组
Object.values() 返回对象属性值组成的数组
Object.entries() 返回对象[属性名, 属性值]组成的二维数组
4.数组
拓展运算符
...用在=左边,聚合的作用(对象、数组的解构)
...用在=右边,展开(剥离)的作用
let obj1 = {
name: '张三'
}
let obj2 = {
...obj1,
age: 12
}
API拓展
Array.from() 将其他类型数据(可迭代的)转成数组
Array.of() 创建数组实例,实参就是数组的元素
Array.prototype.find() 返回满足条件的第一个元素,参数为函数
Array.prototype.findIndex() 返回满足条件的第一个元素的索引,参数为函数
Array.prototype.includes() 判断当前数组中是否包含某个元素,参数为元素,返回true/false
Array.prototype.fill() 填充数组(所有元素填充),修改数组原值
Array.prototype.() 索引的迭代器对象
Array.prototype.values() 元素的迭代器对象
Array.prototype.entries() 键值对的迭代器对象
学习es6的day02
最新推荐文章于 2024-11-08 14:35:14 发布
本文详细介绍了ES6中的变量声明,包括let和const的区别,强调了它们的作用域和不可重复声明的特点。解构技术在数组、对象、字符串和布尔值中的应用被逐一解析,展示了其在简化代码和提取值方面的强大能力。此外,还探讨了对象和数组的API拓展,如Object.setPrototypeOf和Array.prototype.find等,帮助开发者更好地利用这些新特性进行编程。
摘要由CSDN通过智能技术生成