JS parseInt() 、parseFloat()、Number()

介绍:

parseInt(string, radix)

parseFloat(string)

Number(object)

举例:

总结:

parseInt(string, radix)

parseFloat(string)

Number(object)


介绍:

parseInt(string, radix)

定义:解析一个字符串 (如果不是字符串,将则将其转换为字符串) 并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数。

工作原理:从左到右开始一个一个字符解析,直到解析完毕整个字符串 或 解析遇到非数值 或 解析遇到小数点 后 中止解析 并返回已经 解析的部分。

parseFloat(string)

定义:函数可解析一个字符串,并返回一个浮点数。

工作原理:从左到右开始一个一个字符解析,直到解析完毕整个字符串 或 解析遇到非数值 或 解析遇到了第二个小数点 后 中止解析 并返回已经 解析的部分。

Number(object)

定义:函数把 对象 的值转换为数字并返回。

工作原理:相比 parseInt 与 parseFloat,Number 是对整个对象进行解析 后 进行结果返回

举例:

// 整数 字符串
let param = '18'; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18
console.log(Number(param)) // 18

// 小数 字符串
let param = '18.2'; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18
console.log(Number(param)) // 18

// 整数前面带有0的 字符串
let param = '000018.2'; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18.2
console.log(Number(param)) // 18.2

// 空 字符串
let param = ''; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // 0

// 多个逗号 字符串
let param = '18.2.3'; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18.2
console.log(Number(param)) // NaN

// 数值后带有非数值 字符串
let param = '18px'; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18
console.log(Number(param)) // NaN

// 数值前带有非数值 字符串
let param = 'px18'; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // NaN


特殊情况:
// null
let param = null; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // 0

// undefined
let param = undefined; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // NaN

// Boolean
let param = true; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // 1

// Boolean
let param = false; 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // 0

// Date
let param = new Date(); 
console.log(parseInt(param)) // NaN
console.log(parseFloat(param)) // NaN
console.log(Number(param)) // 1655278285053

// Array
let param = new [18]; 
console.log(parseInt(param)) // 18
console.log(parseFloat(param)) // 18
console.log(Number(param)) // 18

总结:

parseInt(string, radix)

举例:parseInt('100', 2) 那么100被作为2进制数被解析出 十进制整数。

  1. 如果传入 参数首位和末位是空格会被忽略。
  2. 如果传入 Array 会对角标为0的元素进行解析 返回 解析的结果。
  3. 如果 radix 小于2大于36 返回 NaN
  4. 如果 radix 是 undefined、0 或未指定的情况。
    1. 如果输入的string 以 0x 或 0X(一个 0,后面是小写或大写的 X)开头,那么 radix 被假定为 16,字符串的其余部分被当做十六进制数去解析。
    2. 如果输入的string 以 "0"(0)开头,radix 被假定为 8(八进制)或 10(十进制)。具体选择哪一个 radix 取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。
    3. 如果输入的 string 以1 ~ 9开头,radix 是 10 (十进制)。

parseFloat(string)

  1. 如果传入 包含 正号(+)、负号(-)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,并返回已经 解析的部分。
  2. 如果传入 包含了第二个小数点的出现也会使解析停止。
  3. 如果传入 参数首位和末位是空格会被忽略。
  4. 如果传入 参数字符串的第一个字符不能被解析成为数字,则返回 NaN
  5. 如果传入 Array 会对角标为0的元素进行解析 返回 解析的结果。

Number(object)

  1. 如果传入 Boolean 为 true 时 返回 1、Boolean 为 false 时 返回 0
  2. 如果传入 undefined 返回 NaN
  3. 如果传入 null 返回 0
  4. 如果传入 Date 返回 毫秒数
  5. 如果传入 Array
    1. 数组长度为1时,会对角标为0的元素进行转换为数字 ,并返回结果。
    2. 如果长度大于1时,返回 NaN
  6. 如果传入 正常的数值 返回 传入的数值
  7. 如果传入 对象的值无法转换为数字 返回 NaN
  8. 如果传入 字符串
    1. 如果传入 空字符串 返回 0
    2. 如果传入 字符串中包含有效的十六进制格式,例如"0xf",则将其他转换为相同大小的十进制整数值。
    3. 如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123,而“011”会变成11(前导的零被忽略了)。
    4. 如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样也会忽略前导零)。
    5. 如果字符串中包含除上述格式之外的字符,则将其他转 返回 NaN

如果帮助到你,不要吝啬你的小手,来个四连 点赞收藏+关注评论吧!

猜你喜欢

转载自blog.csdn.net/weixin_43221910/article/details/125314893