js/数值

Posted cuishuangshuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js/数值相关的知识,希望对你有一定的参考价值。

1、toString(数字转字符串)

  toString方法可以接受一个参数,表示输出的进制。如果省略这个参数,默认将数值转成十进制的字符串;否则就根据参数指定的进制,将一个数字转化成某个进制的字符串

  toString方法只能将十进制的数,转为其他进制的字符串。如果要将其他进制的数,转回十进制,需要使用parseInt方法

  ( 10 ).toString( )  // "10"

  ( 10 ).toString( 2 )  // "1010"

  ( 10 ).toString( 8 )  // "12"

  ( 10 ).toString( 16 )  // "a"

  10["toString"]( 2 )  // "1010"

  注意:上面代码中,数字一定要放在括号里,这样表明后面的点表示调用对象属性。如果不加括号,这个点会被 javascript 引擎解释成小数点,从而报错。

2、toFixed(保留数字小数点后几位)

  toFixed( )方法将数字转成指定位数的小数的字符串

  由于浮点数的原因,小数5的四舍五入是不确定的,使用的时候必须小心。

 

  ( 10 ).toFixed( 2 )  // "10.00"

  ( 10.005 ).toFixed( 2 )  // "10.01"

  注意:上面代码中,数字一定要放在括号里,这样表明后面的点表示调用对象属性。如果不加括号,这个点会被 JavaScript 引擎解释成小数点,从而报错。

3、toPrecision(保留几位有效数字)

  toPrecision( )方法用于将一个数转为指定位数的有效数字

  该方法用于四舍五入时不太可靠,跟浮点数不是精确储存有关。

  ( 12.15 ).toPrecision(3)  // "12.2"

  ( 12.25 ).toPrecision(3)  // "12.3"

  ( 12.35 ).toPrecision(3)  // "12.3"

  ( 12.45 ).toPrecision(3)  // "12.4"

4、parseInt(将字符串转为整数)

  (1)如果字符串头部有空格,空格会被自动去除。

    parseInt( "123" )  // 123

    parseInt( "    81" )  // 91

  (2)字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。

    parseInt( "8a" )  // 8

    parseInt( "15px" )  // 15

  (3)如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN

    parseInt( "abc" )  // NaN

    parseInt( ".3" )  // NaN

    parseInt( "" )  // NaN

    parseInt( "+" )  // NaN

    parseInt( "+1" )  // 1

    parseInt( "-1" )  // -1

    所以,parseInt的返回值只有两种可能,要么是一个十进制整数,要么是NaN

  (4)如果字符串以0x0X开头,parseInt会将其按照十六进制数解析。

    parseInt( "0x10" )  // 16

  (5)如果字符串以0开头,将其按照10进制解析。

    parseInt( "011" )  // 11

  方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

    parseInt( "1000" ,10)  // 1000

    parseInt( "1000" ,2)  // 8

    parseInt( "1000" ,6)  // 216

    parseInt( "1000" ,8)  // 512

5、parseFloat( 将字符串转成浮点数 )

  parseFloat( "3.14" )  // 3.14

  parseFloat( "31.4ekdlf" )  // 31.4

  parseFloat( "" )  // NaN

6、isNaN

  isNaN方法可以用来判断一个值是否为NaN

  isNaN( NaN )  // true

  isNaN( true )  // false

 

7、isFinite

  isFinite方法返回一个布尔值,表示某个值是否为正常的数值

   除了Infinity-InfinityNaNundefined这几个值会返回falseisFinite对于其他的数值都会返回true

    isFinite(Infinity)  // false

    isFinite(-Infinity)  // false

    isFinite(NaN)  // false

    isFinite(undefined)  // false

    isFinite(null)  // true

    isFinite(-1)  // true

8、数值的进制

  十进制:没有前导0的数值。

  八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。

  十六进制:有前缀0x0X的数值。

  二进制:有前缀0b0B的数值。

  oxff  // 255

  0o377  // 255

  0b11  // 3

  如果八进制、十六进制、二进制的数值里面,出现不属于该进制的数字,就会报错。

    0xzz  // 报错

    0o88  // 报错

    0b22  // 报错

  通常来说,有前导0的数值会被视为八进制,但是如果前导0后面有数字89,则该数值被视为十进制。

    0888  // 888

    0777  //511

 

以上是关于js/数值的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

js代码片段: utils/lcoalStorage/cookie

JS代码片段:一个日期离现在多久了

js常用代码片段(更新中)

js常用代码片段

Chrome-Devtools代码片段中的多个JS库