1 字符串处理新方法
(1)includes()
判断字符串中是否包含某个子串,若包含则返回true,否则返回false
(2)startsWith()
判断字符串是否以某个子串开始,若是则返回true,否则返回false
(3)endsWith()
判断字符串是否以某个子串结束,若是则返回true,否则返回false
以上三个方法均可接收两个参数,第一个参数为所有查找的子串,第二个参数为原字符串的偏移量(即从原字符串的第几个字符开始查找),第二个参数为可选参数。
示例:
var msg = "Hello world!";
console.log(msg.startsWith("Hello")); // true
console.log(msg.endsWith("!")); // true
console.log(msg.includes("o")); // true
console.log(msg.startsWith("o")); // false
console.log(msg.endsWith("world!")); // true
console.log(msg.includes("x")); // false
console.log(msg.startsWith("o", 4)); // true
console.log(msg.endsWith("o", 8)); // true
console.log(msg.includes("o", 8)); // false
(4)repeat()
该方法接收一个参数,用以表示原字符串重复的次数。
示例:
'winstar'.repeat(2); // "winstarwinstar"
2 Object.is()
在JavaScript(ECMAScript)中可以使用”==“或者”===“来进行比较运算,但有时这两个比较运算符也会遇到不适用的场景,这时候Object.is()方法就派上用场了:
console.log(+0 == -0); // true
console.log(+0 === -0); // true
console.log(Object.is(+0, -0)); // false
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
console.log(Object.is(NaN, NaN)); // true
console.log(5 == 5); // true
console.log(5 == "5"); // true
console.log(5 === 5); // true
console.log(5 === "5"); // false
console.log(Object.is(5, 5)); // true
console.log(Object.is(5, "5")); // false
3 let
在旧的ECMAScript中,是没有块级作用域的,而使用let关键字来声明变量,可以弥补这一缺陷。
注意:通过let声明的变量,不会被提升(hosted)。