本篇文章给大家带来的内容是关于javascript中的数值如何进行强制转换?(方法总结),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
javascript数据类型分为基本数据类型和引用数据类型
基本数据:number, boolean, undefined, null, string;
引用数据:object;
当0.000...01,小数点后大于等于7位时会自动转换成科学计数法
当20000...00,当整数部分大于等于22位时会自动转换成科学计数法。
number(x):一个参数;
参数为number类型时:能正确输出;
console.log(number(1)); //1console.log(number(1e-7)); //1e-7console.log(number(0b111)); //7console.log(number(nan)); //nan
参数为boolean类型时:true->1;fasle->0;
console.log(number(true)); //1console.log(number(false)); //0
参数为undefined时:其值为nan
console.log(number(undefined)); //nan
参数为null时:
console.log(number(null)); //0
参数为string类型时:
//数字字符串console.log(number(123)); //123console.log(number(-123)); //-123console.log(number(12.3)); //12.3console.log(number(1e-7)); //1e-7console.log(number(0xff)); //255console.log(number(00123)); //123 console.log(number( 123)); //123console.log(number(\t\n123)); //123
//数字+字符或全字符字符串console.log(number('a123')); //nanconsole.log(number(false)); //nanconsole.log(number(a123)); //nan
//空串或者空格字符串console.log(number(\t\n)); //0console.log(number( )); //0console.log(number()); //0
参数类型是对象时:先进行.valueof(),如得到的时对象再进行tostring(),待得到基本数据类型为止,例如{}.valueof().tostring() = [object object] 最后number的结果就是nan了
console.log(number({})); //nanconsole.log(number([1])); //1console.log(number([1,2])); //nancosole.log(number([])); //0
parseint(x,y):2个参数,流程是:先string(x)变为字符串,再将该值以y进制为基底转为十进制数,不填着为10,y的范围: [2,36]
无参数y时:x参数为number时:值得注意的是0.001,1e-7类型的值,会舍去小数点(e)后面的数值,返回前面的。
console.log(parseint(123)); //123console.log(parseint(1e-7)); //1console.log(parseint(0xff)); //255console.log(parseint(nan)); //nanconsole.log(parseint(0.00001)); //0
x参数为boolean,undefined,null时:
console.log(parseint(true)); //nanconsole.log(parseint(false)); //nanconsole.log(parseint(undefined)); //nanconsole.log(parseint(null)); //nan
x参数为string类型时:需要注意的时空串,空格字符串,数字+字符
console.log(parseint()); //nanconsole.log(parseint(-123)); //-123console.log(parseint( )); //nanconsole.log(parseint(\t\n)); //nanconsole.log(parseint(a123)); //nanconsole.log(parseint(123a)); //123
参数x为对象时:同理通过.valueof(),如得到的时对象再进行tostring(),待得到基本数据类型为止,然后按上述规则进行输出
console.log(parseint({1:2})); //[object object]->nanconsole.log(parseint([])); //->nanconsole.log(parseint([1,2])); //1,2->//1
带参数x,y,当y为0,null,undefined,nan时,会将y忽略默认为10,超过[2,36]的范围时返回nan,当x值无妨被y进制表示时返回nan,其余能表示几位就几位
console.log(parseint(f,2)); //nanconsole.log(parseint(11f,2); //3console.log(parseint(123,37)); //nanconsole.log(parseint(0xff,0)); //255console.log(parseint(0xff,nan)); //255console.log(parseint(ff,[])); //nan
parsefloat(x):一个参数,能正确表示浮点数以及科学计数法,但是对字符串进制数不能正确表示,其余与parseint(x,10)一样console.log(parsefloat(0xff)); //255console.log(parsefloat(0xff)); //0 console.log(parseint(0xff)); //255 个人猜测parseint(x,y)有y的存在所以能正确输出console.log(parsefloat(1e22)); //1e22console.log(parsefloat(1e-7)); //1e-7console.log(parsefloat(00123)); //123console.log(parsefloat( )); //nan
string(), .tostring()第一:undefined, null没有tostring()属性只能通过string(undefiend)
第二:y.tostring(x), 的意思是将目标数值y转为x进制的数值
console.log(string(null)); //nullconsole.log(0xff.tostring(2)); //11111111console.log(oxff.tostring()); //255 不填默认10进制
以上就是javascript中的数值如何进行强制转换?(方法总结)的详细内容。