一、字符串
repeat
repeat方法返回一个新字符串,表示将原字符串重复n次。
"hello,".repeat(3); // hello,hello,hello,
includes & startsWith & endsWith
includes : 是否找到参数字符串,返回布尔值;
startsWith: 参数字符串是否在原字符串的头部,返回布尔值。
endsWith: 参数字符串是否在原字符串的尾部,返回布尔值。
三个方法都接受两个参数,第一个参数是参数字符串,第二个是开始检索的位置
let str = "同一个世界同一个梦想";
str.startsWith("同一个");
str.startsWith("一个");
str.endsWith("梦想");
str.endsWith("梦");
str.includes("同");
str.includes("同", 3);
padStart padEnd
padStart:如果字符串不够长度,在头部补全字符
padEnd:如果字符串不够长度,在尾部补全字符
两个方法都接收两个参数,第一个是指定字符串的最小长度,第二个用来补全的字符串。如果指定字符串的长度,等于或大于指定的最小长度(第一个参数)。就直接返回原字符串,如果忽略第二个参数,就使用空格补全原字符串!
let str = "同一个世界同一个梦想";
str.padStart(2, "hello,"); // 'hello,hello,同一个世界同一个梦想'
str.padStart(2); // ' 同一个世界同一个梦想'
str.padEnd(2, ",hello"); // '同一个世界同一个梦想,hello,hello'
str.padEnd(2); // '同一个世界同一个梦想 '
二、数值
isNaN
检查一个值是否为NaN
Number.isNaN(NaN); // true
Number.isNaN(14); // false
isInteger
判断一个值是否为整数,需要注意的是,比如1和1.0都是整数。
Number.isInteger(1); // true
Number.isInteger(1.0); // true
Number.isInteger(1.2); // false
sign 正数 负数 0
判断一个数到底是正数,负数还是0
Math.sign(-10); // -1
Math.sign(10); // +1
Math.sign(-0); // -0
Math.sign(0); // +0
Math.sign(NaN); // NaN
Math.sign("10"); // +1
Math.sign("hello"); // NaN
Math.sign(""); // 0
Math.sign(true); // +1
Math.sign(false); // 0
Math.sign(null); // 0
trunc 去除小数部分
去除一个数的小数部分,返回整数部分
Math.trunc(1.1); // 1
Math.trunc(-1.1); // -1
Math.trunc(-0.1); // -0
Math.trunc("123.456"); // 123
Math.trunc("hello"); // NaN
Math.trunc(""); // 0
三、对象
assign
用于对象的合并,复制到目标对象
let name = { name: "hello" },
sex = { sex: "male" },
city = { city: "hanghzhou" };
Object.assign(name, sex, city); // {name: "hello", sex: "male", city: "hanghzhou"}
keys
根据对象自身可遍历的键名进行遍历,返回一个数组
let info = { name: "hello", sex: "male", city: "hanghzhou" };
Object.keys(info); // ["name", "sex", "city"]
values
根据对象自身可遍历的键值进行遍历,返回一个数组
Object.values(info); // ["hello", "male", "hanghzhou"]
entries
根据对象自身可遍历的键值对进行遍历,返回一个数组
Object.entries(info); // [["name", "hello"],["sex", "male"],["city", "hanghzhou"]]
四、数组
from
from用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象
Array.from("hello"); // ["h", "e", "l", "l", "o"]
//常见的使用方式还有-将Dom集合和arguments转成真正的数组
let oLi = document.querySelectorAll("li");
Array.from(oLi).forEach(item => {
console.log(item);
});
// arguments对象
function fn() {
let args = Array.from(arguments);
}
顺便说下Set
let newSet = new Set(["a", "b", "a", "c"]);
Array.from(newSet); // ['a', 'b','c']
//ES6 新增的数据结构--Set。它类似于数组,但是成员的值都是唯一的,不重复的。
//相信大家很容易想到怎么用了,比如数组去重,用Set实现就简单多了。
function removeRepeatArray(arr) {
//return [Array.from(arr)]
return [...new Set(arr)];
}
find
用于找出第一个符合条件的数组成员。如果没找到符合条件的成员就返回underfind
[1, 2, 3, 4].find(n => n > 2); //3
findIndex
用于找出第一个符合条件的数组成员的索引。
[1, 2, 3, 4].findIndex(n => n > 2); // 2
includes
用于某个数组是否包含给定的值,返回一个布尔值。如果没找到符合条件的成员就返回underfind
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(5); // false
[1, 2, 3, NaN].includes(NaN); // true