• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312355

收藏总数310886

javascript能干什么返回列表

上传时间:2015-02-02 内容关键字:

2.javascript数据类型隐式转化



当遇到以下几种情况,JavaScript会自动转换数据类型:

· 不同类型的数据进行互相运算;

· 对非布尔值类型的数据求布尔值;

· 对非数值类型的数据使用一元运算符(即“+”和“-”)。



自动转换为布尔值


JavaScript遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。它的转换规则与上面的“强制转换成布尔值”的规则相同,也就是说,在预期为布尔值的地方,系统内部会自动调用Boolean方法。


因此除了以下六个值,其他都是自动转为true


undefined

null

-0

+0

NaN

''(空字符串)


if (!undefined && !null && !0 && !NaN && !''){

console.log('true');

}

// true


自动转换为字符串


JavaScript遇到预期为字符串的地方,就会将非字符串的数据自动转为字符串,转换规则与“强制转换为字符串”相同。


字符串的自动转换,主要发生在加法运算时。当一个值为字符串,另一个值为非字符串,则后者转为字符串。


'5' + 1 // '51'

'5' + true // "5true"

'5' + false // "5false"

'5' + {} // "5[object Object]"

'5' + [] // "5"

'5' + function (){} // "5function (){}"

'5' + undefined // "5undefined"

'5' + null // "5null"


自动转换为数值


JavaScript遇到预期为数值的地方,就会将参数值自动转换为数值,转换规则与“强制转换为数值”相同。


除了加法运算符有可能把运算子转为字符串,其他运算符都会把两侧的运算子自动转成数值。


'5' - '2' // 3

'5' * '2' // 10

true - 1  // 0

false - 1 // -1

'1' - 1   // 0

'5'*[]    // 0

false/'5' // 0

'abc'-1   // NaN


上面都是二元算术运算符的例子,JavaScript的两个一元算术运算符——正号和负号——也会把运算子自动转为数值。


+'abc' // NaN

-'abc' // NaN

+true // 1

-false // 0


 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家