美文网首页
字符串的扩展

字符串的扩展

作者: falcon_li | 来源:发表于2018-01-08 14:42 被阅读0次

    1. unicode

    JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。

    "\u0061"

    // "a"

    但是,这种表示法只限于码点在\u0000~\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。

    "\uD842\uDFB7" // "𠮷"

    "\u20BB7" // " 7"

    上面代码表示,如果直接在\u后面跟上超过0xFFFF的数值(比如\u20BB7),JavaScript 会理解成\u20BB+7。由于\u20BB是一个不可打印字符,所以只会显示一个空格,后面跟着一个7。

    ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符

    "\u{20BB7}" // "𠮷"

    "\u{41}\u{42}\u{43}" // "ABC"

    let hello = 123; hell\u{6F} // 123

    '\u{1F680}' === '\uD83D\uDE80' // true

    上面代码中,最后一个例子表明,大括号表示法与四字节的 UTF-16 编码是等价的。

    有了这种表示法之后,JavaScript 共有 6 种方法可以表示一个字符。

    '\z' === 'z' // true

    '\172' === 'z' // true

    '\x7A' === 'z' // true

    '\u007A' === 'z' //true

    '\u{7A}' === 'z' // true

    2. codePointAt

    3.String.fromCodePoint

    4.字符串遍历 

    es 可以使用 for of 遍历字符串

    5.at 方法

    6.normalize

    7. includes() startsWith() endsWith()

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

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

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

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

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

    8.repeat

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

    'x'.repeat(3) //

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

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

    8.2 如果是小数则取整

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

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

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

    8.5 参数NaN等同于 0。

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

    9.padStart() padEnd()

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

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

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

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

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

    10 模版字符串

    模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

    上面代码中,所有模板字符串的空格和换行,都是被保留的,比如

      标签前面会有一个换行。如果你不想要这个换行,可以使用trim方法消除它。

    模板字符串中嵌入变量,需要将变量名写在${}之中。

    模板字符串之中还能调用函数。

    如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。

    模板字符串甚至还能嵌套。

    11模版编译(略)

    12 标签模版(略)

    13 String.raw()(略)

    14 模版字符串的限制(略)

    相关文章

      网友评论

          本文标题:字符串的扩展

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