JavaScript 类型转换方法
转成布尔值
1.通过!!转换
2.通过Boolean( ) ⭐️
注:undefined,null,-0,+0,NaN,‘’(空字符串)是false,其他的都是true。
所有对象的布尔值都是true,甚至连false对应的布尔对象也是true。空对象{}和空数组[]也会被转成true。
number类型除了0对应false外,其他都对应true
Boolean(new Boolean(false)) // Boolean对象会转成true
Boolean([] ) // 空数组会转成true
Boolean({}) // 空对象会转成true
let a = '你好'
let b = null
let o = b && a
console.log(o) // null
// && 表达式从第一个开始,遇到值为false的表达式,则返回表达式本身,否则返回最后一个表达式
转成数字类型
- 转换函数:⭐️
提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。
只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
代码如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
代码如下:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。
- 强制类型转换 Number(value)——把给定的值转换成数字(整数或浮点数)
使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:
代码如下:
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
- 利用js变量弱类型转换 通过-0 或者 *1 或者+'453' +'42.6';
转成字符串
1、toString()方法 toString()方法返回的是相应值的字符串表现形式
数值、布尔值、对象、数组和字符串值都有toString()方法,但是null和undefined值没有这个方法,在大多数情况下,使用toString()方法不需要传递参数。
数值调用toString()方法的时候可以传递一个参数,来表示输出数值的基数,可以以2、8、16进制表示字符串值。
2、String()函数 ⭐️ String()处理null和undefined相当不错。不会抛出任何错误
String()函数可以将任何类型的数值转换为字符串
如果转换值有toString()方法的话,就直接调用该方法,并返回相应的结果
如果转换值是null,则返回"null"
如果转换值是undefined,则返回"undefined"
例子:
```
var value1 = 10;
var value2 = true;
var value3 = null;
var value4; //只定义未初始化的变量,自动赋值为undefined
String(value1); // 10"
String(value2); //"true"
String(value3); // "null"
String(value4); // "undefined"
3、通过+‘’ 空字符串
注:数组转换成字符串的常用方法
1、数组中 toString() 方法能够把每个元素转换为字符串,然后以逗号连接输出显示。如果是多维数组,JavaScript 会以迭代的方式调用 toString() 方法把所有数组都转换为字符串。
2、toLocalString() 方法与 toString() 方法用法基本相同,主要区别在于 toLocalString() 方法能够使用用户所在地区特定的分隔符把生成的字符串连接起来,形成一个字符串。
3、join() 方法可以把数组转换为字符串,不过它可以指定分隔符。在调用 join() 方法时,可以传递一个参数作为分隔符来连接每个元素。如果省略参数,默认使用逗号作为分隔符,这时与 toString() 方法转换操作效果相同。
将字符串转数组 split() 方法把字符串转换为数组
split() 方法是 String 对象法,与 join() 方法操作正好相反。该方法可以指定两个参数,第 1 个参数为分隔符,指定从哪儿进行分隔的标记;第 2 个参数指定要返回数组的长度。
JSON.stringify() 方法用于将 JavaScript 值(对象或者数组)转换为 JSON 字符串。
JSON.parse() 方法用于将一个 JSON 字符串转换为对象。