js中的强制类型转换
转换为数字
方法一:Number()
这是一个转型函数,实例如下:
var m;
Number(m);
参数m分为六种情况,数字、布尔、字符串、对象、null、undefined。
- 当参数时数字时,不论是几进制数字,都转换成十进制返回。
- 当参数时布尔值时,true返回1,false返回0.
- 当参数为字符串时,若字符串的内容是数字时,转换成十进制返回。如果是空字符串或者部分非打印的转义字符如\n、\r等返回0,其他返回NaN。
- 当参数为对象时,先对对象执行toprimitive()抽象操作,变为基础类型的值再按照前面的规则进行转换。该方法的操作流程是,先对它执行valueOf方法,若果没有返回基本类型的值,就调用toString方法,再返回它的值。
- 当参数是null,返回0.
- 当参数是undefined,返回NaN。
方法二:parseInt()
该方法用于字符串转数字,也是一个转型函数。
他有两个参数,第一个是要解析的字符串,如果不是字符串自动转换成字符串。第二个是数字在解析时用到的进制,在2-36之间。
paseInt("1010",2); //10
paseInt("0xa"); //10
parseInt("+10"); //10
parseInt("01.25"); //1 忽略前导0
parseInt(""); //NaN
第一个字符不是数字或者正负号就直接返回NaN,字符串从前往后解析,既不是数字也不是基数中的字符就停止解析。
方法三:parseFloat()
该方法也是一个转型函数,与parseInt的解析机制大致相同。有一点不同,第一个小数被认为是浮点数的一部分,第二个小数点无效。可以识别科学记数法。
方法四:加号运算符
- 若存在对象,先转换成基础值。
- 若存在字符串,则进行字符串的拼接工作。
- 若没有字符串,先用Number转成数字进行加法运算。
转换为字符串
方法一:toString()
该方法是内置对象String中的方法,调用者分别有数字类型、布尔类型、对象三种类型。除了null和undefined,其他数据类型均有该方法。
1.2.toString(); //"1.2"
true.toString(); //"true"
(10).toString(); //"10"
(10).toString(16); //"a" 数字的toString方法可以接受一个基数作为参数。
{}.toString(); //"[object object]"
方法二:String()
String()是一个转型函数,可以将任何类型的值转换成字符串。String函数会先判断值是否有toString方法,如果有就调用,null和undefined单独处理。但String不能数字转换时的基数。所以如果是数字、布尔、对象与toString值一致。如果是null和undefined则返回他们的字符串。
String(null); //"null"
String(undefined); //"undefined"
方法四:加号运算符
将某个值与空字符串连在一起,实现的效果与String一致。
""+true; //"true"
""+1.2; //"1.2"
""+null; //"null"
""+undefined;//"undefined"
转换为布尔值
方法一:Boolean()
只有以下七种值为false,其他为true。
Boolean(null);
Boolean(undefined);
Boolean(NaN);
Boolean("");
Boolean(0);
Boolean(-0);
Boolean(false);
方法二:逻辑运算符!
这种方法与Boolean结果一致。
下边真的可以不看 -----
想学习一些前端的书籍吗,我都帮你整理好啦!评论打出你想读的书,给你最全的笔记干货
超级全的前端知识,面试必备、系统复习必备哟哟哟
有想法评论提出哈,欢迎交流,小编也是渣渣一枚呢~一起进步呗
这次真的可以不看 -----
点个收藏呗,要不赞一个呗,小编手都敲累了,但还是持续加更呢~