数据类型的自动转换和隐式转换

隐式转换:
1

 var a='1'+1;
    console.log(typeof a);
    console.log(a);
    //string
    //11

2

var b='2'-2;
console.log(typeof b);
console.log(b);
//number
//0

3

var c='3'==2;
console.log(typeof c);
console.log(c);
//boolean
//false

显式转换:
parseInt(str,radix),parseFloat(str,radix),Number()转变成数学
Boolean(param)转变成布尔值
subString()转变成字符串

四则运算符
加法运算符不同于其他几个运算符,它有以下几个特点:
1.运算中其中一方为字符串,那么就会把另一方也转换为字符串
2.如果一方不是字符串或者数字,那么会将它转换为数字或者字符串

console.log('a'+ +'b');
//aNaN
4 *'3'
//12
4*[]
//0
4*[1,2]
//NaN

比较运算符
如果是对象,就通过 toPrimitive 转换对象
toPrimitive(input,preferedType?)
input是输入的值,preferedType是期望转换的类型,他可以是字符串,也可以是数字。
如果转换的类型是number,会执行以下步骤:

  1. 如果input是原始值,直接返回这个值;
  2. 否则,如果input是对象,调用input.valueOf(),如果结果是原始值,返回结果;
  3. 否则,调用input.toString()。如果结果是原始值,返回结果;
  4. 否则,抛出错误。
    如果转换的类型是String,2和3会交换执行,即先执行toString()方法。
    你也可以省略preferedType,此时,日期会被认为是字符串,而其他的值会被当做Number。
    如果是字符串,就通过 unicode 字符索引来比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值