
No more than code.
parseInt(string,radix) => 解析字符串,返回整数
string : 必选,被解析字符串
radix: 可选,要解析的数字的基数(2-36;把各进制字符串转换成整数)
parseInt(" 12.11")
=> 12 parseInt(" 1 2.11")
=> 1parseInt("abc")
=> NaN parseInt("")
=> NaN parseInt()
=> NaNparseInt("1abc")
=> 1parseInt(11,null)
=> 11 parseInt(11,undefined)
=> 11 parseInt(11,0)
=> 11parseInt('10', 37)
=> NaN parseInt('10', 1)
=> NaNparseInt('1', 2)
=> 1 parseInt('2', 2)
=> NaN parseInt('023', 2)
=> 0parseInt("0x11")
=> 17parseInt(011)
=> 9
注意:
parseInt("011")
=> 11
当小数点后0的个数>5:
parseInt(0.000001)
=> 0
parseInt(0.0000001)
=> 1 (1e-7)
parseInt('0.0000001')
=> 0
当小数点前数字位数大于21:
parseInt(100000000000000000000)
=> 100000000000000000000
parseInt(1000000000000000000000)
=> 1
parseInt('1000000000000000000000')
=> 1e+21
注意:1中小数点后计算0的个数;2中计算小数点前的位数,可为任意数;
["1", "2", "3"].map(parseInt)
输出什么?
解析:
["1", "2", "3"].map(parseInt)
等同于调用了三次parseInt方法:["1","2","3"].map(function(ele,index){ return parseInt(ele,index) })
parseInt(“1”,0) => 基数为0时,按照上边陈述即为10进制,返回 1
parseInt(“2”,1) => 基数为1,不在2-36范围内,默认输出NaN
parseInt(“3”,2) => 基数为2,因为字符串3大于基数不合法,解析为NaN
答案:[1, NaN, NaN]
parseFloat() => 解析字符串,返回浮点数
字符前0省略
parseFloat('12ab')
=> 12
parseFloat('a123')
=> NaN
parseFloat('00123')
=> 123
parseFloat('0')
=> 0
parseFloat('123.213')
=> 123.213
parseFloat('123.213.213')
=> 123.213
parseFloat("3.125e7")
=> 31250000
parseFloat('')
=> NaN
parseFloat('0x11')
=> 0
parseFloat('011')
=> 11
parseFloat(011)
=> 9
注意:
parseInt()
和parseFloat()
函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。- 使用运算符
"+"
将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN。
+123abc
=> NaN
parseInt('123abc')
=> 123
parseInt('123abc')
=> 123
parseInt('abc')
=> NaN
parseInt('abc')
=> NaN
用于任何数据类型转换成数值。
parseInt(true)
=> 1 parseInt(false)
=> 0parseInt(null)
=> 0parseInt(undefined)
=> NaNNumber("")
=> 0parseInt("abc")
=> NaNparseInt("11.11")
=> 11.11Number('0xf')
=> 15 Number(011)
=> 9 Number('011')
=> 11获取指定范围内的随机整数
function getRadomNum(min,max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
优雅的表示大数字
// All the below will evaluate to true
1e0 === 1;
1e1 === 10;
1e2 === 100;
1e3 === 1000;
1e4 === 10000;
1e5 === 100000;
Longhand:const obj = { x:x, y:y };
Shorthand:const obj = { x, y };
~~ 和 |0
Longhand: Math.floor(4.9) === 4 //true; //parseInt
Shorthand: ~~4.9 === 4 //true
var foo = (12 / 4.13) | 0; //结果为2
千分位
Vue.prototype.$thousandsNum = function(num){
return num.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
}