您好,欢迎访问一九零五行业门户网

javascript中的数值如何进行强制转换?(方法总结)

本篇文章给大家带来的内容是关于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中的数值如何进行强制转换?(方法总结)的详细内容。
其它类似信息

推荐信息