module1-online-02-隐式转换

隐式转换

一、隐式转换为数字类型

  • 算数运算符比较运算符中会隐式转换为数字类型(相当于调用Number())

  • 纯数字字符串直接转换为对应数字(或只有一个值的数组,进行Number()转换的时候会视为第一个值的字符串)

    • +'123' // 123
      +['123'] // 123
  • 转换为1:true, [1],['1']

  • 转换为0:false、null、‘’空字符串、‘ ’空白字符串、[]、[''空字符串]、[空白字符串]

  • 转换为NaN:undefined、非空非纯字符串

  • Infinity转换为Infinity

二、隐式转换为布尔值

  • 逻辑运算中,或者将数据作为条件分支语句(if / while / do while)的判断条件时

    • 逻辑运算的时候会先进行条件判断然后返回的是原值

  • 转换为false:NaN、0、‘’空字符串、null、undefined

  • 转换为true:非0、非NaN、非空字符串、数组与对象

    • 这里的空数组与只有一个值的数组都看为是true

上一篇:教我兄弟学Android逆向05 在smali代码中插入Log


下一篇:module1-online-03-短路语法