js变量类型强制转换

其它类型转string

方法一

  直接其它类型+string

var a = 123;
a = 123 + '';
console.log(typeof a);

方法二

     调用 toString()方法

      

var a = 123;
a = a.toString()
console.log(typeof a);

  

方法三

     使用String()函数

     

var a = 123;
a = String(a);
console.log(typeof a);

  

  • 对于Number和Boolean而言,实际上就是调用toString()方法。

  • 但是对于null和undefined,就不会调用toString()方法。它会将 null 直接转换为 "null"。将 undefined 直接转换为 "undefined"。

其它类型转number

方式一:使用Number()函数

情况一:字符串 --> 数字

    • 1.如果字符串中是纯数字,则直接将其转换为数字。

    • 2.如果字符串中有非数字的内容,则转换为NaN。(此处可以看到Number()函数的局限性)

    • 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。

情况二:布尔 --> 数字

true 转成

alse 转成 0

情况三:null --> 数字

结果为:0

情况四:undefined --> 数字

结果为:NaN

方式二:parseInt():字符串 -> 整数【重要】

parseInt是专门针对字符串的

var a = "123"
console.log(parseInt(a));

  得到数字123

parseInt()还具有以下特性:

   1)只保留字符串最开头的数字,后面的中文自动消失。例如:

    

    console.log(parseInt("2017在公众号上写了6篇文章"));  //打印结果:2017

    console.log(parseInt("2017.01在公众号上写了6篇文章"));  //打印结果仍是:2017   (说明只会取整数)

    console.log(parseInt("aaa2017.01在公众号上写了6篇文章"));  //打印结果:NaN

  2)自动带有截断小数的功能:取整,不四舍五入。

   

	var a = parseInt(5.8) + parseInt(4.7);
	console.log(a);

  3)如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作。

      

    var a = true;
    console.log(parseInt(a));  //打印结果:NaN (因为是先将a转为字符串"true",然后然后再操作)

    var b = null;
    console.log(parseInt(b));  //打印结果:NaN  (因为是先将b转为字符串"null",然后然后再操作)

    var c = undefined;
    console.log(parseInt(c));  //打印结果:NaN  (因为是先将b转为字符串"undefined",然后然后再操作)

    var d = 168.23;
    console.log(parseInt(d));  //打印结果:168  (因为是先将c转为字符串"168.23",然后然后再操作)

  

parseFloat也是一个针对字符串的处理的函数和parseInt不同的是parseFloat 会保留小数点

   

    var a = '123.45678';
    console.log(parseFloat(a)); // 打印结果:123.45678

  

 

posted @ 2019-07-23 10:29  Django_gege  阅读(547)  评论(0编辑  收藏  举报