隐式类型转换

 

一:字符串

转字符串出现的场景
  1、有字符串的加法运算
  2、有对象的加法运算
  3、某些比较运算符
  4、调用alert、document.write方法

  转换的原理:调用了String()

二:数字

隐式类型转数字出现的场景
  1、数学运算符(+ - * / %),但是加号运算里不能出现字符串与对象类型的数据
  2、一元运算符(+ -)后的数据
  3、某些比较运算符

原理:Number();

数据转数字的结果
  1、undefined NaN
  2、null 0
  3、布尔值 true为1,false为0
  4、字符串
  1、空、空格为0
  2、非空字符串,并且内容为纯数字(包含进制和科学表示法),转成对应的数字
  3、其余的都是NaN
  5、对象
  1、对象、函数转成NaN
  2、空数组转为0,数组里只有一个数据并且这个数据能转成数字,则转成对应的数字,其它都是NaN

三:转布尔值

隐式类型转布尔值出现的场景
  1、取反运算(! !!)
  2、三目运算符
  3、条件语句的括号里
  4、逻辑运算符&& ||

原理:Boolean();

数据转数字的结果
  1、undefined false
  2、null false
  3、数字
  +0 -0 NaN转布尔值的结果为false,其它的转布尔值结果都为true
  4、字符串
  1、空字符串转布尔值的结果为false,其它(包括空格)结果都为true
  5、对象,结果都为true

 

posted @ 2021-03-10 13:37  刘雨鑫  阅读(291)  评论(0)    收藏  举报