手机版

JS数字转换研究综述

时间:2021-11-12 来源:互联网 编辑:宝哥软件园 浏览:

JS将数据转换为数字有三种类型和五种方法,包括:强制转换,将JS的基本数据类型转换为对应类型的原生函数(number (v))。这两个函数有不同的结果(parsent(v,radix),parseFLOAT (v)),JS在执行时会将变量转换成相应的类型(位计算,数学计算)。JS中的特殊值包括以下内容。Undefined,undefined,这是当变量被声明但未被赋值或者对象不存在时的属性值。NaN/Infinity,这是两个顽固的“数字”(typeof==number),分别代表非数字和无限数字。好像没用。如果转换为数字失败,返回值基本上是NaN。null,用作零值的对象(typeof==object)。true/false,布尔值,表示true和false,相当于1/0。对于字符串,也可以根据内容进行细分。根据JS数值表达式,可以分为合法和非法。法定数字有几种不同的分类方法:符号:正号、负号、无符号基数:八进制、十进制、十六进制科学记数法十进制、整数、十进制的缩写。根据上面的分类,我做了一个Demo来测试不同方法和数值转换的结果。下面的截图显示了chrome下的转换。

因此,只有位计算才能将任何值转换为isFinite数,数学计算和强制转换的结果是一样的。特殊值的转换与原始值和转换方法有关。ParseInt/parseFloat所有转换失败,NaN返回。NaN/undefined通过其他方法完全转换为NaN;通过parseInt将Infinity转换为NaN,其余方法不改变其值;空值/假值/真值不能由parsent/parseFloat转换。NaN被返回。字符串的转换分析主要取决于转换方法,但所有的方法都不支持用八进制表示的数字,而是将其视为对应的十进制数。计算并转换除负十六进制数以外的合法表达式,截断小数部分;非法表达式返回零。数学计算/数字类似于逻辑计算,但不省略小数。除空字符串之外的非法表达式返回NaN。parseInt也只保留整数部分;但是,对于非法表达式,取字符串前面的合法整数(十进制和十六进制,不包括科学表示法)进行部分转换,如果没有表达式,则返回NaN。parseFloat类似于parseInt,只是它可以识别和保留十进制部分,并且不支持十六进制数字。

版权声明:JS数字转换研究综述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。