ECMAScript 6 新特性

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)。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章