最近做项目,发现很多js基础函数还是不够熟练,于是想要做一期javascript cheat sheet放在桌旁,随用随查。


循环


for循环

for(let i = 0; i < 10; i++){} 

array循环


let iterable = [102030];
for (let value of iterable) {
    value += 1;
    console.log(value);
}
 

object循环


let obj = {a:1b:2c:3};
for (let prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}
 
以上都支持await
for和for...of中可以使用break和continue

for...in会忽略continuebreak

查找


查找数组元素

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 = [14916]
const map = array.map(x => x * 2)


filter

const array = [14916]
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)返回一个表示给定对象的所有可枚举属性元素的数组。