乐趣区

关于javascript:学习记录

强制转换

强制转换次要指应用 Number()String()Boolean()三个函数,手动将各种类型的值,别离转换成数字、字符串或者布尔值。

Number()

应用 Number 函数,能够将任意类型的值转化成数值。

(1)原始类型值

原始类型值的转换规则如下。

// 数值:转换后还是原来的值
Number(324) // 324

// 字符串:如果能够被解析为数值,则转换为相应的数值
Number('324') // 324

// 字符串:如果不能够被解析为数值,返回 NaN
Number('324abc') // NaN

// 空字符串转为 0
Number('') // 0

// 布尔值:true 转成 1,false 转成 0
Number(true) // 1
Number(false) // 0

// undefined:转成 NaN
Number(undefined) // NaN

// null:转成 0
Number(null) // 0

Number函数将字符串转为数值,要比 parseInt 函数严格很多。基本上,只有有一个字符无奈转成数值,整个字符串就会被转为NaN

parseInt('42 cats') // 42
Number('42 cats') // NaN

(2)对象

简略的规定是,Number办法的参数是对象时,将返回NaN,除非是蕴含单个数值的数组。

Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5

String()

String函数能够将任意类型的值转化成字符串,转换规则如下。String()

String函数能够将任意类型的值转化成字符串,转换规则如下。

(1)原始类型值

  • 数值:转为相应的字符串。
  • 字符串:转换后还是原来的值。
  • 布尔值 true 转为字符串 "true"false 转为字符串"false"
  • undefined:转为字符串"undefined"
  • null:转为字符串"null"
String(123) // "123"
String('abc') // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"

(2)对象

String办法的参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串模式。

String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"

Boolean()

Boolean()函数能够将任意类型的值转为布尔值。

它的转换规则绝对简略:除了以下五个值的转换后果为false,其余的值全副为true

  • undefined
  • null
  • 0(蕴含 -0+0
  • NaN
  • ''(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
退出移动版