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,');
}