类型转换!!!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的解析机制大致相同。有一点不同,第一个小数被认为是浮点数的一部分,第二个小数点无效。可以识别科学记数法。

方法四:加号运算符

  1. 若存在对象,先转换成基础值。
  2. 若存在字符串,则进行字符串的拼接工作。
  3. 若没有字符串,先用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结果一致。

下边真的可以不看 -----

想学习一些前端的书籍吗,我都帮你整理好啦!评论打出你想读的书,给你最全的笔记干货
超级全的前端知识,面试必备、系统复习必备哟哟哟

有想法评论提出哈,欢迎交流,小编也是渣渣一枚呢~一起进步呗

这次真的可以不看 -----

点个收藏呗,要不赞一个呗,小编手都敲累了,但还是持续加更呢~

猜你喜欢

转载自blog.csdn.net/qq_36049117/article/details/92588881