新方法
- includes():返回布尔值,判断是否找到参数字符串。
- startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
- repeat():返回新的字符串,表示将字符串重复指定次数返回。
- padStart(length,newStr):返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
- padEnd(length,newStr):返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
- 模板字符串
ES6对象方法
commonjs
Amd
Cmd
-
Object.assign ()
var obj1 = { uname: "张三", age: 12 } var obj2 = { school: "积云教育", address: "海淀" } //合并对象 // var result = Object.assign(obj1, obj2) // console.log(result) // console.log(obj1)
-
Object.create ()
-
Object.defineProperty ()
prototype
-
Object.defineProperties ()
-
Object.entries ()
返回给定对象自身可枚举属性的 [key, value] 数组。
-
Object.freeze()
-
Object.getownPropertyDescriptor()
返回对象指定的属性配置。
-
Object.getownPropertyNames()
-
Object.getownPropertySymbols()
-
Object.getPrototypeOf()
返回指定对象的原型对象。
-
Object.is()
比较两个值是否相同。所有 NaN 值都相等(这与==和===不同)。
-
Object.isExtensible()
判断对象是否可扩展。
-
Object.isFrozen()
判断对象是否已经冻结。
-
Object.isSealed()
判断对象是否已经密封。
-
Object.keys()
-
Object.values()
-
浅拷贝与深拷贝
栈内存和堆内存
- 栈内存:简单数据类型 string,number,boolean,null,undefined
- 堆内存:复杂数据类型 object,array....
-
注意:
- 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。
- 深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
-
1.直接赋值
//直接赋值 let arr1 = ["北京", "上海", "广州",["白云区","黄埔区"]] let arr2 = arr1; let arr2 = [] arr2[0] = "beijing" console.log("arr2", arr2) console.log("arr1", arr1)
2.浅拷贝
let arr1 = ["北京", "上海", "广州",["白云区","黄埔区"]]
let arr2 = arr1;
//浅复制
for (var k in arr1) {
arr2[k] = arr1[k]
}
arr2[0] = "beijing"
arr2[3][0]="baiyunqu"
// console.log("arr2", arr2)
// console.log("arr1", arr1)
3.深拷贝
for (k in arr1) {
if (arr1[k] instanceof Array) {
//数组
arr2[k] = []
for (var m in arr1[k]) {
arr2[k][m] = arr1[k][m]
}
} else if (arr1[k] instanceof Object) {
//对象
arr2[k] = {}
for (n in arr1[k]) {
arr2[k][n] = arr1[k][n]
}
} else {
//字符串
arr2[k] = arr1[k]
}
}
// arr2[3][0] = "baiyunqu"
// console.log("arr2", arr2)
// console.log("arr1", arr1)
arr2[4].uname = "zhangsan"
console.log("arr2", arr2)
console.log("arr1", arr1)
es6数组常用的方法
filter():创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素(注意:它不会对空数组检测,它不会改变原数组)
1、Array.from( ):将对象或字符串转成数组,注意得有length。
2、Array.of( ): 将一组值转换为数组。
3、copyWithin(target,start(可选),end(可选)):数组内数据的复制替换
target:从该位置开始替换数据;。
start:从该位置开始读取数据,默认为0;
end:到该位置停止数据的读取,默认为数组的长度
4、find( ):用于找出第一个符合条件的数组成员。
5、findindex( ):返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
6、fill(value,start,end):使用给定值,填充一个数组。
value:填充的值;
start:开始填充的位置;
end:填充结束的位置。
7、keys( ):对键名的遍历。
8、values( ):对键值的遍历。
9、entries( ):对键值对的遍历。
10、includes( ):数组原型的方法,查找一个数值是否在数组中,只能判断一些简单类型的数据,对于复杂类型的数据无法判断。该方法接受两个参数,分别是查询的数据和初始的查询索引值。
11、flat( ):用于数组扁平,数组去除未定义。
12、flatMap( ):对原数组的每个成员执行一个函数。 , 13、Map( ):是一组键值对的结构,具有极快的查找速度。
14、Set( ):Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。