美文网首页
ES6字符串

ES6字符串

作者: 海之深处爱之港湾 | 来源:发表于2019-03-10 23:21 被阅读0次

    1.多了两个新方法;

    startWith 以什么什么开头

    endWith 以什么什么结尾

    eg:

      var str = "ahadjfhajfk";

        alert(str.startsWith("a"));//true

    返回值结果为布尔值


    2.字符串模板

    字符串连接

    a. 直接把东西塞到字符串里边 ${东西};

    b. 可以折行,通过${}填值

    let str = 'abc';

    let str = "abc";

    字符串单引号与双引号在Js中没有什么区别,但在C语言,JAVA语言可能不一样.

    let str = `abc`;


    3.反单引号``

    通过${}将变量直接连接在字符串当中;

    let str = `abc`;

    let n = 10;

    let str1 = `a${n}bc`;

    alert(str1); //a10bc


    4.字符串的遍历器接口

    ES6 为字符串添加了遍历器接口(详见《Iterator》一章),使得字符串可以被for...of循环遍历。

    for (let codePoint of 'foo') {

      console.log(codePoint)

    }

    // "f"

    // "o"

    // "o"

    除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。

    let text = String.fromCodePoint(0x20BB7);

    for (let i = 0; i < text.length; i++) {

      console.log(text[i]);

    }

    // " "

    // " "

    for (let i of text) {

      console.log(i);

    }

    // "𠮷"

    上面代码中,字符串text只有一个字符,但是for循环会认为它包含两个字符(都不可打印),而for...of循环会正确识别出这一个字符。


    5.includes(), startsWith(), endsWith()

    传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。

    includes():返回布尔值,表示是否找到了参数字符串。

    startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。

    endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

    let s = 'Hello world!';

    s.startsWith('Hello') // true

    s.endsWith('!') // true

    s.includes('o') // true

    这三个方法都支持第二个参数,表示开始搜索的位置。

    let s = 'Hello world!';

    s.startsWith('world', 6) // true

    s.endsWith('Hello', 5) // true

    s.includes('Hello', 6) // false

    上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。


    6.repeat()

    repeat方法返回一个新字符串,表示将原字符串重复n次。

    'x'.repeat(3) // "xxx"

    'hello'.repeat(2) // "hellohello"

    'na'.repeat(0) // ""

    参数如果是小数,会被取整。

    'na'.repeat(2.9) // "nana"

    如果repeat的参数是负数或者Infinity,会报错。

    'na'.repeat(Infinity)

    // RangeError

    'na'.repeat(-1)

    // RangeError

    但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0,repeat视同为 0。

    'na'.repeat(-0.9) // ""

    参数NaN等同于 0。

    'na'.repeat(NaN) // ""

    如果repeat的参数是字符串,则会先转换成数字。

    'na'.repeat('na') // ""

    'na'.repeat('3') // "nanana"

    7.padStart(),padEnd()

    ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

    'x'.padStart(5, 'ab') // 'ababx'

    'x'.padStart(4, 'ab') // 'abax'

    'x'.padEnd(5, 'ab') // 'xabab'

    'x'.padEnd(4, 'ab') // 'xaba'

    上面代码中,padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

    如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。

    'xxx'.padStart(2, 'ab') // 'xxx'

    'xxx'.padEnd(2, 'ab') // 'xxx'

    如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。

    'abc'.padStart(10, '0123456789')

    // '0123456abc'

    如果省略第二个参数,默认使用空格补全长度。

    'x'.padStart(4) // '  x'

    'x'.padEnd(4) // 'x  '

    padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

    '1'.padStart(10, '0') // "0000000001"

    '12'.padStart(10, '0') // "0000000012"

    '123456'.padStart(10, '0') // "0000123456"

    另一个用途是提示字符串格式。

    '12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"

    '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

    相关文章

      网友评论

          本文标题:ES6字符串

          本文链接:https://www.haomeiwen.com/subject/wcsmpqtx.html