https://developer.mozilla.org/zh-CN/
万物皆对象
实例成员: 通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员
静态成员: 构造函数的属性和方法被称为静态成员
1. 对象(Object):
Object.keys(obj): 返回属性的数组。
Object.values(obj): 返回属性的值的数组。
Object.entries(obj): 返回一个包含对象自身可枚举属性的键值对的数组。
Object.assign(target, ...sources): 增加属性,将一个或多个源对象的属性复制到目标对象中,并返回目标对象。
Object.create(proto, [propertiesObject]): 使用指定的原型对象和属性创建一个新对象。
Object.defineProperty(obj, prop, descriptor): 在对象上定义一个新属性或修改现有属性的特性。
Object.getOwnPropertyDescriptor(obj, prop): 返回指定对象上一个自有属性对应的属性描述符。
Object.getOwnPropertyNames(obj): 返回一个包含对象自身所有属性(不仅是可枚举属性)的数组。
Object.getPrototypeOf(obj): 返回指定对象的原型。
Object.setPrototypeOf(obj, prototype): 设置一个对象的原型到另一个对象或null。
Object.hasOwnProperty(prop): 判断对象是否具有指定名称的自身属性。
2. 数组(Array):
concat(): 连接两个或多个数组,并返回一个新数组
let arr1 = [1,2,3];
arr1 = arr1.concat([1,2,3],[4,5,6])
console.log(arr1);
join(): 将数组的所有元素连接成一个字符串。
let str1 = arr1.join("");
console.log(str1);
push(): 向数组的末尾添加一个或多个元素,并返回新的长度。
arr1.push(1)
pop(): 删除并返回数组的最后一个元素
let last = arr1.pop()
shift(): 删除并返回数组的第一个元素
let first = arr1.shift()
unshift(): 向数组的开头添加一个或多个元素,并返回新的长度。
arr1.unshift(0)
slice(): 从数组中提取指定位置的元素,并返回新数组
let afterSlice = arr1.slice(2,4)
splice(): 删除、替换或添加数组的元素,并返回被删除的元素。
arr1.splice(1,4)
console.log(arr1)
reverse(): 颠倒数组中元素的顺序。
arr1.reverse()
console.log(arr1)
sort(): 对数组元素进行排序。
arr1.sort((a,b)=>a-b)
console.log(arr1)
indexOf(): 返回指定元素在数组中首次出现的索引。
let firstFindIndex = arr1.indexOf(1)
lastIndexOf(): 返回指定元素在数组中最后一次出现的索引。
let lastFindIndex = arr1.lastIndexOf(1)
filter(): 创建一个新数组,其中包含通过函数筛选的所有元素。
let afterFilter = arr1.filter((item)=>item==2)
map(): 创建一个新数组,其中包含对原数组的每个元素应用函数的结果。
let afterMap = arr1.map((item,index)=>{return item*2})
reduce(): 通过函数对数组的元素进行累积计算,返回一个值,累加器初始化为0
let afterReduce = arr1.reduce((accumulator,currentVal)=>{return acuumulator+currentVal},0)
forEach(): 对数组的每个元素执行一次指定的函数。
arr1.forEach((item)=>{item+=1;})
every(): 检查数组的所有元素是否满足指定的条件。
let res = arr1.every((item,index)=>{return item>0;})
some(): 检查数组的是否至少有一个元素满足指定的条件。
let res = arr1.some((item)=>{
return item<0;})
find(): 返回数组中满足指定条件的第一个元素。
let res = arr1.find((item)=>{
return item>2;})
findIndex(): 返回数组中满足指定条件的第一个元素的索引。
let res = arr1.findIndex((item)=>{return item>2;})
这些方法会直接修改原始数组,并返回具体的操作结果或修改后的数组。
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 会改变原数组的方法:
111 push() 添加到数组末尾,返回新的数组长度
222 pop() 取得最后一项
222 shift() 取得第一项
111 unshift() 在数组开头添加任意多个值,返回新的数组长度
111222333 splice() 插入
传入三个参数,分别是开始位置,要删除元素的数量,要插入的任意多个元素,返回删除元素的数组,对原数组产生影响
传入两个参数,分别是开始位置,删除元素的数量,返回包含删除元素的数组
let colors = ["red", "green", "blue"];
let removed = colors.splice(1, 1, "red", "purple"); // 插入两个值,删除一个元素
console.log(colors); // red,red,purple,blue
console.log(removed); // green,只有一个元素的数组
或者
let colors = ["red", "green", "blue"];
let removed = colors.splice(0,1); // 删除第一项
console.log(colors); // green,blue
console.log(removed); // red,只有一个元素的数组
reverse()
sort()
BBBBBBBBBBBBBBBBBBBB 会返回新数组的方法,这些方法不会修改原始数组,而是返回一个新的数组作为结果。
111 concat() 添加到副本末尾
最后返回这个新构建的数组,不会影响原始数组
222 slice() 用于创建一个包含原有数组中一个或多个元素的新数组,不会影响原始数组
filter()
map()
其他方法:
join() ***************************************数组变字符串
let colors = ["red", "green", "blue"];
alert(colors.join(",")); // red,green,blue
alert(colors.join("||")); // red||green||blue
444 indexOf() 返回要查找的元素在数组中的位置,如果没找到则返回 -1
444 find() 返回第一个匹配的元素
444 includes() 返回要查找的元素在数组中的位置,找到返回true,否则false
lastIndexOf()
reduce() 求和
const count = arr.reduce((pre,cur) => pre + cur)
const countt = arr.reduce((pre,cur) => {pre + cur.salary}, 0) //对象里面的属性
forEach()
every()
some()
const mi = arr.find(item => item.name === '小米')
findIndex()
Array.from() 把伪数组转换成真数组
3. 字符串(String):
我们需要知道字符串的特点是一旦创建了,就不可变
length: 返回字符串的长度。
split(separator, [limit]): *******************将字符串分割为子字符串数组,根据指定的分隔符。
字符串变数组 对应join
let str = "12+23+34"
let arr = str.split("+") // [12,23,34]
substring(start, [end]): 提取字符串的一部分,并返回一个新字符串。
结束的索引号不包含想要截取的部分。
与slice()类似,但不支持负索引。
slice(start, [end]): 提取字符串的一部分,并返回一个新字符串。
startsWith(searchString, [position]): 检查字符串是否以指定字符串开头。
includes(searchString, [position]): 检查字符串是否包含指定字符串。
concat(str1, str2, ..., strN): 连接两个或多个字符串,并返回一个新字符串。
charAt(index): 返回指定索引位置的字符。
charCodeAt(index): 返回指定索引位置的字符的Unicode编码。
trim(): 移除字符串两端的空格或其他指定字符。
repeat(2)
indexOf(searchValue, [start]): 返回指定字符串首次出现的索引。
lastIndexOf(searchValue, [start]): 返回指定字符串最后一次出现的索引。
substring(start, [end]): 提取字符串的一部分,并返回一个新字符串。与slice()类似,但不支持负索引。
substr(start, [length]): 提取字符串的指定长度的子字符串,并返回一个新字符串。
replace(searchValue, replaceValue): 替换字符串中的指定内容,并返回一个新字符串。
toLowerCase(): 将字符串转换为小写。
toUpperCase(): 将字符串转换为大写。
endsWith(searchString, [length]): 检查字符串是否以指定字符串结尾。
match(regexp): 在字符串中搜索匹配指定正则表达式的结果,并返回一个数组。
search(regexp): 在字符串中搜索匹配指定正则表达式的结果,并返回匹配的索引。
padEnd()
复制字符串,如果小于指定长度,则在相应一边填充字符,直至满足长度条件
3.JSON字符串
JSON.stringify() 对象转换为json字符串
{“uname":"pink","age":18,"hobby":["兵乓球","足球"],"family":{"baby":"小飞"}}
JSON.parse() 字符串转换为对象
4. 数字(Number):
toFixed(digits): 将数字格式化为指定小数位数的字符串表示。
toPrecision(precision): 将数字格式化为指定有效位数的字符串表示。
toString([radix]): 将数字转换为指定进制(2到36)的字符串表示。
parseFloat(string): 解析一个字符串参数并返回一个浮点数。
parseInt(string, radix): 解析一个字符串参数并返回一个整数。
isFinite(number): 检查一个数字是否有限(非Infinity或NaN)。
isNaN(number): 检查一个数字是否是NaN(Not-a-Number)。
isInteger(number): 检查一个数字是否是整数。
isSafeInteger(number): 检查一个数字是否是安全整数。
toExponential(fractionDigits): 返回一个数字的指数表示法的字符串。
toLocaleString([locales, [options]]): 返回一个数字的本地化表示字符串。
valueOf(): 返回一个数字的原始值。
5. 集合(Set):集合是一组唯一值的集合:
const mySet = new Set();
add(value): 向集合中添加一个新的元素。
delete(value): 从集合中删除指定的元素。
has(value): 检查集合中是否存在指定的元素,返回一个布尔值。
clear(): 清空集合,删除所有元素。
size: 返回集合中元素的数量。
values(): 返回一个包含集合中所有元素的迭代器。
forEach(callbackFn, [thisArg]): 对集合中的每个元素执行指定的回调函数。
6. 映射(Map):
const myMap = new Map();
myMap.set("name", "John");
myMap.set("age", 25);
console.log(myMap.toArray()); // 输出: [['name', 'John']]
若不是new Map的映射,不能使用.has等
用for(let item of map){if(item in map){}}
set(key, value): 向Map中添加一个新的键值对。
get(key): 获取指定键对应的值。
has(key): 检查Map中是否存在指定的键,返回一个布尔值。
delete(key): 从Map中删除指定键及其对应的值。
clear(): 清空Map,删除所有键值对。
size: 返回Map中键值对的数量。
keys(): 返回一个包含Map中所有键的迭代器。
values(): 返回一个包含Map中所有值的迭代器。
entries(): 返回一个包含Map中所有键值对的迭代器。
forEach(callbackFn, [thisArg]): 对Map中的每个键值对执行指定的回调函数。
7. 栈(Stack):
const myStack = new Stack();
push(element1, element2, ..., elementN): 将一个或多个元素添加到栈的顶部。
pop(): 移除并返回栈顶部的元素。
peek(): 返回栈顶部的元素,但不对栈进行修改。
isEmpty(): 检查栈是否为空,返回一个布尔值。
clear(): 清空栈,移除所有元素。
size(): 返回栈中元素的数量。
8. 队列(Queue):
const myQueue = new Queue();
enqueue(element1, element2, ..., elementN): 将一个或多个元素添加到队列的末尾(也称为入队)。
dequeue(): 移除并返回队列的第一个元素(也称为出队)。
peek(): 返回队列的第一个元素,但不对队列进行修改。
isEmpty(): 检查队列是否为空,返回一个布尔值。
clear(): 清空队列,移除所有元素。
size(): 返回队列中元素的数量。