1.Object.assign(target,...sources)
作用:将所有可枚举属性的值从一个或多个源对象(sources)分配到目标对象(target),并返回目标对象
对象的浅拷贝合并
const obj = { a: 1, b: 2 };
const newobj = Object.assign({},obj);
console.log(newobj);//{a: 1, b: 2}
注:
(1)若源对象属性与目标对象属性不同,则会被拷贝到目标对象中;
(2)若目标对象和源对象有相同的属性,目标对象的属性值会被源对象的属性值覆盖掉;
(3)若多个源对象有相同的属性,那么目标对象的属性将会被最后一个源对象属性覆盖;
(4)继承和不可枚举的属性无法拷贝(创建对象时,若属性没有设置enumerable的值,则默认为不可枚举);
(5)异常的情况会终止拷贝(比如拷贝的对象中含有只读属性)
(6)null和undefined会被自动忽略
对象的深拷贝合并
const obj = {};
const newObj =Object.assign(JSON.parse(JSON.stringify(obj)),{a:0});
obj.a = 1111;
console.log(newObj);//{a: 0},不会改变目标对象的值
注:只能解决引用类型的值拷贝,继承的和无法枚举的依旧无法拷贝
2.Object.defineProperty(obj,prop,desc)
作用:对一个对象上定义一个新属性,或修改一个对象的现有属性并返回
Object.defineProperty(Vue.prototype,'',{
get(){
......
},
set(val){
......
}
})
注:应该是直接在Object构造对象上调用该方法,而不是随意的在任意一个Object类型上调用
3.match(searchvalue/regexp)
作用:检索匹配符合规则的值并返回一个结果数组
var str="1 plus 2 equal 3";
document.write(str.match(/\d+/g));//1,2,3
4.splice(start,delNum,item)---译文:拼接
作用:在数组中添加/删除项目,并返回被删除的项目
const arr = [1, 2, 3, 4, 5];
// 从索引 1 开始删除 2 个元素
const removed = arr.splice(1, 2);
console.log(arr); // [1, 4, 5]
console.log(removed); // [2, 3]
// 在索引 1 的位置插入元素 6 和 7
arr.splice(1, 0, 6, 7);
console.log(arr); // [1, 6, 7, 4, 5]
5.slice(begin,end)---译文:切片
作用:选取数组的一部分,并返回一个新数组
或者是
提取字符串的某个部分,并返回一个新的字符串
//不选参数则默认为从 0 开始到数组或字符串的长度
数组
const arr = [1, 2, 3, 4, 5];
const newArr = arr.slice(1, 4);
console.log(newArr); // [2, 3, 4]
console.log(arr); // 原数组不变:[1, 2, 3, 4, 5]
字符串
const str = 'Hello, World!';
const newStr = str.slice(0, 5);
console.log(newStr); // 'Hello'
console.log(str); // 原字符串不变:'Hello, World!'
6.split(分隔符,长度)---译文:分割
作用:把字符串分割为字符串数组,可以指定分隔符或正则
//如果参数不选,则默认返回整个字符串的数组
const str = 'apple,banana,orange';
const arr = str.split(',');
console.log(arr); // ['apple', 'banana', 'orange']
7.reduce(回调[累计,当前值],初始值)
作用:将数组中的值合并为一个值(从左到右)
const arr = [1, 2, 3, 4, 5];
// 计算数组元素的和
const sum = arr.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // 15
8.Math.ceil()
作用:向上取整
9.Math.floor()
作用:向下取整