最近做项目,发现很多js基础函数还是不够熟练,于是想要做一期javascript cheat sheet放在桌旁,随用随查。
循环
for循环
for(let i = 0; i < 10; i++){}
array循环
let iterable = [10, 20, 30];
for (let value of iterable) {
value += 1;
console.log(value);
}
object循环
let obj = {a:1, b:2, c:3};
for (let prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}
以上都支持await
for和for...of中可以使用break和continue
for...in会忽略continue和break
查找
查找数组元素
if(array.indexOf(value) !== -1)
查找对象key值
var o = {a: 'a', b: 'b', c: 'c'};
Object.keys(o).indexOf('a'); //0
Object.keys(o).indexOf('d'); //-1
查找字符串中子字符串
let start = str.indexOf(search);
number
parseInt(5/2) // 丢弃小数部分
Math.ceil(5/2) // 向上取整
Math.floor(5/2) // 向下取整
Math.round(5/2) // 四舍五入
字符串
转成小写
str.toLowerCase()
截取
substr() 第一个参数代表开始位置,第二个参数代表截取的长度。
substring() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置;若参数值为负数,则将该值转为0;两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差。
slice() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串。
数组
判断是否为空数组
if (this.messages.length !== 0) {}
连接
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var a = [1,2,3];
console.log(a.concat([4,5]));
map
const array = [1, 4, 9, 16]
const map = array.map(x => x * 2)
filter
const array = [1, 4, 9, 16]
const filter = array.filter(x => x > 4)
队列、栈操作
pop() 方法用于删除并返回数组的最后一个元素。
arr.pop()
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
arrayObject.push(newelement1,newelement2,....,newelementX)
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
arr.shift()
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
arrayObject.unshift(newelement1,newelement2,....,newelementX)
添加/删除/替换
splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。返回被删除项目的新数组,如果有的话。
arrayObject.splice(index,howmany,item1,.....,itemX)
排序
arrayObject.sort(sortby)数组在原数组上进行排序,不生成副本。
比较函数应该具有两个参数 a和 b,其返回值如下:
若 a小于 b,在排序后的数组中 a 应该出现在 b之前,则返回一个小于 0的值。
若 a等于 b,则返回 0。
若 a大于 b,则返回一个大于 0的值。
反转
reverse()方法用于颠倒数组中元素的顺序。该方法会改变原来的数组,而不会创建新的数组。
arrayObject.reverse()
对象
Object.keys(obj1) 返回一个表示给定对象的所有可枚举属性的字符串数组。
Object.values(obj1)返回一个表示给定对象的所有可枚举属性元素的数组。