-
object.assign()——对象合并
该方法用于对象的合并,将源对象的所有可枚举属性,复制到目标对象,要注意: 1)方法中第一个参数为目标对象 2)复制的操作为浅拷贝,即目标对象拷贝得到的是源对象的引用:如果若源对象中存在属性的属性值为对象,那么源对象中对该属性值的改变也会体现在目标对象上
const obj1 = {a:1}
const obj2 = {b:2, c:{name: 'xxx', age: 18}}
const object = Object.assgin(obj1 , obj2 )
obj2.c.age = 20
object.c.age = 20
- Object.keys():
对象和数组都可以用,一个是返回对象自身可枚举属性组成的数组;一个是返回元素下标组成的数组
const obj1 = {
a: 1,
b: {
x: 1,
y: 2
}
}
const arr = [1,2,3,4]
Object.keys(obj1) // [a, b]
Object.keys(arr) // [0,1,2,3]
-
arr.pop():
- 删除数组的最后一个元素 - 返回被删除的元素 - 会改变数组的长度
-
arr.shift():
- 删除数组的第一个元素 - 返回被删除的元素 - 会改变数组的长度
-
arr.unshift() :
- 在数组的起始位置添加新的元素【不仅限于添加一个】 - 返回值为数组长度 - 会改变原数组
-
arr.push():
- 向数组末尾处添加元素 - 返回值为数组长度 - 会改变原数组值
-
arr.splice() :
- 在数组中删除项目/ 添加项目 - 返回被(删除/新增)项目构成的新数组 - 会改变原始数组 -参数1:删除/添加项目的位置【nec】 -参数2:删除项目的个数【nec】 -参数3....n:像数组中添加的项目
const arr1 = [10,20,30,40,50]
const spliceRes = arr1.splice(1,2,'a','b','c')
console.log(arr1) // 原始数据变为:[20, 30]
console.log(spliceRes ) // splice返回值:[10, "a", "b", "c", 40, 50]
-
arr.sort()
对数组元素进行排序(默认按照字符编码顺序)
以下四个关于数组的api都是纯函数:
- 不改变源数组(无副作用)
- 返回值为一个数组
- [纯]arr.map()
关于parseInt()的用法
[10,20,30].map(parseInt) // [10,NaN,NaN]
// 二者书写形式等价
[10,20,30].map((num. index) => {
return parseInt(num, index)
})
-
[纯]arr.concat():
- 用于连接两个或更多的数组 - 返回新的数组 - 不改变之前的数组
const a = [1,2,3]
const b = [4,5,6]
const c = a.concat(b)
console.log(c) // [1,2,3,4,5,6]
console.log(a) // [1,2,3]
-
[纯]arr.filter():
- 用于过滤数组 - 返回新的数组 - 不改变之前的数组
const a = [1,2,3,4,5,6]
const c = a.filter(num => num > 3)
console.log(c) // [4,5,6]
console.log(a) // [1,2,3,4,5,6]
-
[纯]arr.slice() :
-返回数组中被选定的元素 -不会修改原数组 -参数1:从何处开始截取 -参数2:截取的结束位置(不包括该结束位置) -(只有一个参数且非负时,代表从它开始截到结束;为负数时,代表从末尾截取)
const arr = [1,2,3,4,5]
arr.slice(-3) // [3,4,5]
关于splice(剪接) 和 slice(切片)的差别:
-
一个是返回选中元素组成的数组;一个是删除、添加
说在前面: JSON是一种数据格式,本质是字符串; json格式看着像对象,和JS对象结构一致
-
JOSN.stringfy():将一个对象转换成一个 json 字符串
-
JSON.parse():从一个字符串中解析出 json 对象
-
split (): 把一个字符串分割成字符串数组
var a = 'how are you'
a.split(" ") // ['how', 'are', 'you']
- join():把数组中的所有元素都转换成一个字符串
var fruit = ['orange','apple', 'watermelon']
fruit.join('-') // 'orange-apple-watermelon'
-
arr.toString() :
将数组以字符串形式返回
-
substring()
方法用于提取字符串中介于两个指定下标之间的字符。 -参数1:要提取的字符串的起始位置 -参数2:要提取的字符串的结束位置+1(如若省略,截取至末尾)
-
Number.toFixed(n)
可以把number四舍五入为指定小数位数的数字
-
path.resolve()——将一些路径/路径段 解析为绝对路径
总结:总结一下:从后向前,若字符以 / 开头,不会拼接到前面的路径;若以 ../ 开头,拼接前面的路径,但是不含前面一节的最后一层路径;若以 ./ 开头 或者没有符号 则拼接前面路径
-
path.join()——使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径
总结 :区别:join()只是拼接各个path片段,并不像resolve()一样除了拼接各个字段还拼接了工作目录的路径,其次如果以/开头的字符串片段在join并不像resolve一样是只返回自身,还有就是.. 同 ../是一个意思都代表上一级