隐式转换

JavaScript隐式数据转换

在JavaScript当中,一共存在七种数据类型:
基本类型:String、Number、Boolean、null、undefined、Symbol(入门先不学)
引用类型:Object

1. +运算符:

  • String类型与其他类型之间用+运算符,运算符后的内容全部转换成String类型
//数字相加
var a=1,b=2;
alert(a+b);//3
//字符串相加
var a="abc",b="def";
alert(a+b);//abcdef
//布尔值相加
var a=true,b=false;
console.log(a+a,a+b,b+b);//2,1,0
//null相加
var a=null;
console.log(a+a);//0
//undefined相加
var a;
console.log(a+a);//NaN
//数字字符串相加
var a=1,b="nihao";
console.log(a+b,b+a);//1nihao,nihao1
var a=1,b="true",c="false";
console.log(a+b);//1true,1false
//数字布尔值相加 (注意和上边的区别)
var a=1,b=true,c=false;
console.log(a+b.a+c,b+c);//2,1,1
//数字与null相加
var a=1,b=null;
console.log(a+b,b+a);//1,1
//数字与undefined相加(undefinde可以省略)
var a=1,b;
console.log(a+b);//NaN
//字符串与布尔值
var a="1",b=true,c=false;
console.log(a+b,c+a);//1true,false1
//字符串与null
var a="1",b=null;
console.log(a+b);//1null
//字符串与undefined
var a="1",b;
console.log(a+b);//1undefined
//布尔值与null
var a=true,b=false,c=null;
console.log(a+c,b+c);//1,0
//布尔值与undefined
var a=true,b=false,c;
console.log(a+c,b+c);//NaN,NaN
//null与undefined
var a=null,b;
console.log(a+b);//NaN

2. -,*,/,%运算符

  • 其它运算符:使用时全部转换为 Number 类型
//减(-)
var a=1,b="2",c=true,d=null,e;
console.log(a-b,a-c,a-d,a-e);//-1,0,1,NaN
//乘(*)
console.log(a*b,a*c,a*d,a*e);//2,1,0,NaN
//除(/)
console.log(a/b,a/c,a/d,a/e);//0.5,1,Infinity,NaN
//取模
console.log(a%b,a%c,a%d,a%e);//1,0,NaN,NaN

3. 引用类型转换

  • 与String类型运算时,优先调用toString,如果String中带有非数字,则为NaN
  • 与Number、Boolean、null运算时优先调用valueOf

总结:

  1. +运算符:String类型与其他类型之间用+运算符,运算符后的内容全部转换成String类型,拼接效果
  2. 其它运算符:使用时全部转换为 Number 类型
  3. 除+运算符外,任何类型与undefined都为NaN
  4. 转换为 Boolean类型为 false的有:null,0,"",undefined,NaN,false
  5. 所有有字符参与的加法运算,优先字符运算,不管是一个字符还是两个都是字符,那么按照字符加法方式运算,即先将非字符的内容隐式转换为字符型,然后再做首尾相连。如果运算中有字符的参与,优先按照字符的加法运算来操作。如果没有字符运算,参照数学运算,也就是先把所有的布尔值都隐式转换为数值,然后做数值加法运算。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值