VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 字符串的解读和标签模板

字符串解读

es6加强了对Unicode 的支持,允许\uxxxx的形式展现一个字符,例如:

console.log('\u0061'); // 打印 a

\u后面的为字符的 Unicode 码点 \u 后面4位 xxxx

但是这种写法只识别 \u0000 到 \UFFFF 之间的字符,超出需要使用两个双字节表示,例如:

console.log('\uD842\uDFB7'); // 打印 吉

如果说超出了\uxxxx字节的范围,则为两个字节的拼接,例如:

console.log('\u20BB7'); // 输出 ' 7'   \u20BB系统识别为空
console.log('\u00617'); // 输出 'a7'   

\u0061识别为a,由于7超出了这个字节,所以为\u0061+7,结果为a7
 

es6对 Unicode 的支持进行了加强,如果超出了两个字节,放入大括号内即可正常解读

console.log("\u{20BB7}"); // 打印 吉

// 只要将码点放入大括号即可正确解读
console.log('\u{41}\u{42}\u{43}'); // 输出ABC

大括号与双字节的写法是等价的

  console.log('\u{1F680}' == '\uD83D\uDE80'); // 大括号与4字节的写法等价 输出true

js对字符的几种表现方法:

console.log('\z' === 'z');
console.log('\172' === 'z');
console.log('\x7A' === 'z');
console.log('\u007A' === 'z');
console.log('\u{7A}' === 'z');
console.log('z' === 'z');

字符串的遍历

字符串遍历for...of

  for (let codePoint of 'foo') {
     console.log(codePoint); // f o o
   }

其实一般的遍历,例如for,也可以遍历字符串,但是for无法识别大于0xFFFF的码点,而for...of则可以识别

 let text = String.fromCodePoint(0x20BB7)
 
 // for循环
    for (let i = 0; i < text.length; i++) {
         console.log(text[i]); // ' ' 空
      }
      
// for---of可以识别 大于0xFFFF的码点 , 而传统的for无法识别
    for (let i of text) {
        console.log(i); // 吉
     }

有些时候,我们在用JSON.stringify转字符串的时候,发现转译的字符串多了几个\
根据标准,JSON数据必须是 UTF-8 编码。但是JSON.stringify()方法有可能返回不符合 UTF-8 标准的字符串。
UTF-8 标准规定,0xD8000xDFFF之间的码点,不能单独使用,必须配对使用。比如,\uD834\uDF06是两个码点,但是必须放在一起配对使用,代表字符


相关教程