将字符串转换为数字时,parseInt()Number()的行为如何不同?

推荐答案

嗯,它们是semantically different,Number constructor called as a function个表演type conversionparseInt个表演parsing,例如:

// parsing:
parseInt("20px");       // 20
parseInt("10100", 2);   // 20
parseInt("2e1");        // 2

// type conversion
Number("20px");       // NaN
Number("2e1");        // 20, exponential notation

此外,parseInt将忽略与当前使用的基数的任何数字不对应的尾随字符.

Number构造函数不检测隐式八进制,但可以检测显式八进制记法:

Number("010");         // 10
Number("0o10")         // 8, explicit octal

parseInt("010");       // 8, implicit octal
parseInt("010", 10);   // 10, decimal radix used

它可以处理十六进制的数字,就像parseInt:

Number("0xF");   // 15
parseInt("0xF"); //15

此外,执行数字类型转换的一个广泛使用的构造是Unary + Operator (p. 72),它相当于使用Number构造函数作为函数:

+"2e1";   // 20
+"0xF";   // 15
+"010";   // 10

Javascript相关问答推荐

React:如何将表格收件箱正确渲染为表格主体内的组件?

无法在page. evalve()内部使用外部函数

如何指定1条记录1个表?

模块与独立组件

通过嵌套模型对象进行Mongoose搜索

我不知道为什么setwritten包装promise 不能像我预期的那样工作

如何在Javascript中的控制台上以一行形式打印循环的结果

在观察框架中搜索CSV数据

如何在Javascript中使用Go和检索本地托管Apache Arrow Flight服务器?

给定一个凸多边形作为一组边,如何根据到最近边的距离填充里面的区域

在Three JS中看不到补间不透明度更改效果

XSLT处理器未运行

Angular 中的类型错误上不存在获取属性

使用ThreeJ渲染的形状具有抖动/模糊的边缘

如何将未排序的元素追加到数组的末尾?

从逗号和破折号分隔的给定字符串中查找所有有效的星期几

AG-GRIDreact 显示布尔值而不是复选框

在HTML5画布上下文中使用putImageData时,重载解析失败

在ChartJS中使用spanGaps时,是否获取空值的坐标?

将延迟加载的模块转换为Eager 加载的模块