3、js中的运算符

 一、说一下js中类型转化的规则? 为false的值:false、undefined、NaN、‘’、0

// 说一下js中类型转化的规则?
// false的值 
// false、undefined、null、''、0、NaN
// 其他值都为true
// ! 可以把这个值转化为boolean类型。

console.log(!'');

// 运算 +(字符串拼接的含义) - * /  1/true   1/'a'
console.log(1/'a'); 

// + 运算 字符串拼接
// 1) 数字和非字符串相加     Null相加0,     undefined:数字和undefined相加 NaN 
console.log(1+true);
console.log(1+null);
console.log(1+{});  //1[object Object]

//非数字相加
console.log(true+true);
console.log(true+{});   //如果有一方为字符串,就会认为是字符串拼接

// 对象中有2个方法:valueOf  toString();
let obj={
    [Symbol.toPrimitive](){
        return 500;
    },
    valueOf(){
        return {};  //返回的并不是一个原始类型
    },
    toString(){
        return 200;
    }
}
console.log(true+obj);
console.log({}.valueOf());  //返回的是 {}
// + - 这个符号 !
console.log(typeof +'a');
console.log(1+ +'123')
console.log((0.1+0.2)==0.3)

 二、比较运算符 > = <

// 比较运算 >= <
console.log('a'.charCodeAt(0));
console.log('b'.charCodeAt(0));

console.log('a'<'bbb');  //ascii
console.log(1<'123');  // 如果可以转化成字符串,如果不能转化成数字,就返回false

// ==
console.log(null==undefined);  //true
console.log(null===0);   //false 
// null 和undefined 和其他类型比较返回的都是false

console.log({}=={});   //返回的是引用空间
console.log(NaN==1);   //NaN和任何类型比较都不相等。
console.log('1'==1);   //将字符串转化成数字
console.log(1==true);  //如果是boolean类型,会吧boolean转成数字

// 对象和字符串 数字 Symbol 比较的时候   会把当前的对象转化成原始类型
console.log({}=='[object Object]');

// [] ==![]  单目运算优先级更高
// []==false  //false 是0,true是1
// []==0    [].valueOf()
// []==0   [].toString()
// ''==0   Number('');
// 0=0
// 相等
console.log([] ==![])

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vues

刚好遇见你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值