zccst转载
toFixed 保留2位小数 4舍5入
判断一个数是否是数字?
a === +a
取正(+), 减零 (-0), 乘一,(*1),除以一(/1),取负(-,这个得到相反的值)。
console.log(+'123') //输出 123
console.log(-'123') //输出 -123
console.log('123' - 0) //输出 123
console.log('123'*1) //输出 123
console.log('123'/1) //输出 123
console.log(+true) //输出1
console.log(+false) //输出0
①使用parseInt()转换有符号整数
parseInt() 的作用 被描述为 Parses a string argument and returns an integer of the specified radix or base.
parseInt() 的使用方式:var num = parseInt(string[,radix]);
parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。
但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,
此时 parseInt() 将把该字符之前的字符串转换成数字。
常规用法举例说明:
var num = parseInt("12abc"); //返回 12
var num = parseInt("56.9"); //返回 56
var num = parseInt("red"); //返回 NaN
var num = parseInt("red123"); //返回 NaN
parseInt() 方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由 parseInt() 方法的
第二个参数指定的,当然,对二进制、八进制、十六进制甚至十进制(默认模式),都可以调用 parseInt() 方法:
var num = parseInt("10", 2); //将'10'转换成二进制数字返回 2
var num = parseInt("10",; //将'10'转换成八进制数字返回 8
var num = parseInt("10", 10); //将'10'转换成十进制数字返回返回 10
var num = parseInt("F", 16); //将'F'转换成十六进制数字返回 15
parseInt(str)(默认模式)与parseInt(str,10) 都是将字符串转换成十进制的数字。但还是强烈建议使用时加上第二个参数。
因为有如下可能出现:
var num = parseInt("0xF"); // 字符串'0xF'被认为是十六进制数,转换成十进制返回 15。这种情况是正确的。
如果输入字符串数字前面有0,比如'010',结果就不太一样了:
//经测试,在IE9与Chrome最新版,中'010'会被当做十进制数,返回10。但是在FireFox19中返回结果为8!输入'010'被当成了八进制数。
var num = parseInt("010");
所以还是强烈建议加上第二个参数使用。
var num = parseInt("010",; //返回 8
var num = parseInt("010", 10); //返回 10
②使用parseFloat()转换浮点数
parseFloat() 的作用 被描述为 Parses a string argument and returns a floating point number..
parseFloat() 的使用方式:var num = parseFloat(string);
parseFloat() 方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,
然后把该字符之前的字符串转换成整数。不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,
第二个小数点将被看作无效的。parseFloat() 会把这个小数点之前的字符转换成数字!并且,与parseInt()不同。
parseFloat() 要求输入的字符串必须以十进制表示浮点数。所以,八进制数'010'会被转换成10,而十六进制数'0xF'会被解析成0
举例如下:
var num = parseFloat("123abc"); //返回 123
var num = parseFloat("0xA"); //返回 0
var num = parseFloat("11.2"); //返回 11.2
var num = parseFloat("11.22.33"); //返回 11.22
var num = parseFloat("0102"); //返回 102
var num = parseFloat("red"); //返回 NaN
③使用Number()强制类型转换为数值型
Number() 函数的强制类型转换与 parseInt() 和 parseFloat() 方法的处理方式相似,只是它转换的是整个值,而不是部分值。
parseInt() 和 parseFloat() 方法只转换第一个无效字符之前的字符串,因此 "1.2.3" 将分别被转换为 "1" 和 "1.2"。
用 Number() 进行强制类型转换,"1.2.3" 将返回 NaN,因为整个字符串值不能转换成数字。
如果字符串值能被完整地转换,Number() 将判断是调用 parseInt() 方法还是 parseFloat() 方法。
使用举例及对比:
Number(false) //0
Number(true) //1
Number(undefined) //NaN
Number(null) //0
Number(new object()) //NaN
Number() //0
Number(' ') //0
如果使用parseInt()/parseFloat() 转换上述值,返回结果都是NaN !
Number("1.2.3") //NaN
Number(50) //50
Number("1.2") //1.2
Number("12") //12
看完这段,可以回答刚开始提出的疑问了:传给isNaN的参数是按什么规则转换的? 应该是按照Number()强制转换的规则进行的。
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
相关推荐
将数据类型转换为数字类型Number()、parseInt()、parseFloat的区别
JS中有三种函数可以将非数值转换成数值:Number()、parseInt()和parseFloat()。接下来通过本文详细的给大家介绍JS转换数值函数Number()、parseInt()、parseFloat()的实例代码,感兴趣的朋友一起看看吧
基于JavaScript Number类型 Number() 、 parseInt() 和 parseFloat() 的转换规则的思维导图
详解js中Number()、parseInt()和parseFloat()的区别 详解JS转换数值函数Number()、parseInt()、parseFloat() 在项目开发中我们经常会用到转型方法,尤其是JS这种松散型的语言。其中比较常用的方法就是Number()方法和...
转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。 在判断...
本文主要对js中Number()、parseInt()和parseFloat()的区别进行详细介绍,具有很好的参考价值,需要的朋友一起来看下吧
例:Number(“678”)的结果为678 3.转换为布尔型:Boolean(); 例:Boolean(“aaa”)的结果为true 从一个值中提取另一种类型的值的方法: 1.提取字符串中的整数:parseInt(); 例:parseInt(“123zhang”)的结果为
练习:工资单 已发布的练习与BOOTCAMP培训有关-NodeJS Developer-Java脚本编程简介( ) 挑战说明: 我们需要知道某个公司应该为雇员支付多少,但是我们只有工作时间和小时费率。 编写一个程序,以读取... NUMBER =
|--3.获取日期格式的字符串 toString()、toLocaleTimeString()、toLocaleDateString()等 21.argument参数:所有方法都隐藏的一个数组对象 作用:不设置任何的形参的情况下,自动接收所有传入参数 arguments....
JavaScript中,可以通过以下3种方法来将string值转换成number: 1.调用Number()来对string进行值类型转换。 2.parseInt()。 3.parseFloat()。 Number() 使用Number()函数来对string进行强制类型转换是最直接的做法。...
1.输出语句:document.write("") 2.JS中的注释为:// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,...8.JS中的字符型转换成数值型: parseInt(),parseFloat()
parseFloat/parseInt ->非严格 isNaN(value) 如果value值不是数字类型的,它是首先调用Number转换为数字类型然后在判断是否为有效的数字 例如: Number(“12px”); ->NaN parseInt(“12px”); ->12 isNaN...
1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) ...8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型:("" 变量)
以下三个函数将非数值转换为数值:Number() 、parseInt()和 parseFloat() Number()的转换规则 1.Boolean值 true会被转换为1 false会被转换为0 var correct = true Number(correct) 1 var error = false Number...
2 、 parseFloat( ) 和 parseInt( ) :将字符串开头的整数或浮点数分解出来,转换为整数或浮点数 3 、 isNaN( ) :确定一个变量是否为 NaN ( Not a Number ) 4 、 escape( ) :将字符串中的非字母数字字符转换为按...
i=parseFloat(i);//字符串转浮点型 alert(i+”,”+typeof(i));//输出:12.3,number(可见不管是int还是float都是number类型) i=”a123abc”; i=parseInt(i);//字符串转整形 alert(i+”,”+typeof...