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
Welcome to visit