zoukankan      html  css  js  c++  java
  • JavaScript中进制和字符编码问题

    1、进制:

    JavaScript中允许使用字面量的形式声明不同进制的数字:

    var a = 0b10; // 2 声明一个二进制
    var b = 010;  // 8 八进制,严格模式下会报错
    var c = 10;  // 10 十进制
    var d = 0x10 // 16 十六进制

    其中八进制字面量在严格模式下会报错,数字超过范围,将会忽略前导 0 ,解析为十进制数字

    var f = 08  ;  //8

    2、进制之间转换:

    调用toString方法,可以在进制之间进行转换。

    d.toString(2); //"10000"
    d.toString(8); //"20"
    d.toString(10);//"16"

    3、字符编码

    同样JavaScript允许使用字面量的形式声明一个字符串;

    var a = 'a'; //"a"  字面量声明;
    var b = 'x61';//"a"  使用ASCII码的格式声明一个字符串;x后面跟的是ASCII 16进制的格式。
    var c = 'u0061' // "a" 使用unicode编码声明的字符串;都是16进制格式。

    4、字符编码转换

    静态方法:

    String.fromCodePoint() ,返回使用指定的代码点序列创建的字符串;

    String.fromCodePoint(97) //"a"  十进制的码点,一串 Unicode 编码位置
    String.fromCodePoint(0x61) //"a" 十六进制编码位置

    String.fromCharCode() ,返回由指定的UTF-16代码单元序列创建的字符串;

    String.fromCodePoint(97);// "a"
    String.fromCodePoint(0x61); // "a"

    两者区别在于fromCharCode参数是UTF-16代码单元的数字。 范围介于0到65535(0xFFFF)之间。 大于0xFFFF的数字将被截断。 不进行有效性检查。

    实例方法:

    String.prototype.charCodeAt()方法返回0到65535之间的整数,表示给定索引处的UTF-16代码单元;

    'a'.charCodeAt(0) //97

    String.prototype.codePointAt() 方法返回 一个 Unicode 编码点值的非负整数。

    'a'.codePointAt(0);//97
    '中'.codePointAt(0);//20013
  • 相关阅读:
    整理牙刷
    color 圆盘染色
    数论の一波流[长期更新]
    生成树
    一维黑白棋
    Factorials
    平面分割问题
    poj1183 反正切函数
    烽火传递
    校门外的树
  • 原文地址:https://www.cnblogs.com/engeng/p/11212379.html
Copyright © 2011-2022 走看看