js类型转换

147 阅读3分钟

类型转换:

在数据类型中,某些场景下,需要进行的操作,需要将类型转换才可以完成,需要将类型转成另一种类型

目标类型:number string boolean

被转换的类型:number string boolean null undefined

转成number

强制转换:利用js系统提供的工具来转换

1.Number()

将字符串转成number

` var str = '11'

var num = Number(str)

console.log(num);

` 数字字符串可以转成具体数字,空字符串可以转成0,其他字符串都是NaN

`var str = ''

var num = Number(str)

console.log(num);`

将boolean转成number - true为1,false为0

` var bool = false

var num = Number(bool)

console.log(num); `

将null转成数字 - 0

var a = null

var num = Number(a)

console.log(num);

undefined转数字 - NaN

var a

var num = Number(a)

console.log(num);

2.parseInt() - 只有开头有整数的字符串能转成具体的数字,其他数据都是NaN 字符串转数字 - 结果是 从前向后找到的第一个整数

var str = '11.88'

var num = parseInt(str)

console.log(num);

boolean转成数字 - NaN

var bool = false

var num = parseInt(bool)

console.log(num);

null -> number - NaN

var a = null

var num = parseInt(a)

console.log(num);

undefined -> number - NaN

var a

var num = parseInt(a)

console.log(num);

3.parseFloat()

字符串转数字 - 从前向后截取数字-带小数

var str = '11.88aa'

var num = parseFloat(str)

console.log(num);

其他数据转成数字 - NaN

var bool

var num = parseFloat(bool)

console.log(num);

/* 总结: Number()

    空字符串转成0
    数字字符串转成数字
    true转成1
    false转成0
    null转成0

    其他都是NaN
parseInt()
    字符串开头有整数,取到整数
    其他都是NaN
parseFloat()
    字符串开头有数字-带小数点 - 取到前面的这个数字
    其他都是NaN

*/

隐形的转换:没有使用工具,利用的运算

转数字

字符串转数字

当字符串碰到数学运算(除了加法)的时候,就会悄悄的转成数字,进行数学运算

var a = 10

var b = '5'

var c = a - b

console.log(c);

当字符串跟数字进行比较运算的时候,只要运算符左右两边有一个是数字,另一个也会悄悄的转成数字进行大小比较

var a = 10

var b = '5'

var result = a > b

console.log(result);

布尔值转数字

var a = 2 + true

console.log(a); // 3

var result = 2 > true

console.log(result);

/* 其他类型隐形转成数字: 1.数学运算 2.比较运算 */

其他类型转字符串

强制转换

1.String()

var num = true

var str = String(num)

console.log(str);

2.数据.toString()

var num = true

var str = num.toString()

console.log(str);

隐形转换

+号左右两边有一个是字符串,另一个也会悄悄的转成字符串,进行拼接

var num = 20

var result = num + '11'

console.log(result);

/* 总结:

强制:
        String()
    数据.toString()
隐形:
    +号一边是字符串,另一边就会隐形转成字符串

*/

其他类型转布尔类型

强制转换

Boolean()

数字转布尔 - 0转成false,其他都是true

var num = 0

var bool = Boolean(num)

console.log(bool);

字符串转布尔 - 空字符串转成false,其他都是true

var str = ''

var bool = Boolean(str)

console.log(bool);

undefined转布尔 - false

var a

var bool = Boolean(a)

console.log(bool);

null转布尔 - false

var a = null

var bool = Boolean(a)

console.log(bool);

/* 总结: 重点

转布尔为false0 空字符串 undefined null
其他数据都是true

*/