php数据类型隐式转换,js隐式转换的知识讲解(附示例)

本篇文章给大家带来的内容是关于js隐式转换的知识讲解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

开胃菜[] == ![] //true ==> "" == false

123 ^ [] //123 ==> 123 ^ 0

~{} //-1 ==> ~0

{} >= {1,2} //true ==>因为大于等于的比较,不是相等的比较,所以[object Object] >=[object Object]

[null] == "" //true ==> [""] == ""

值得注意的操作符:一元操作符:通过Number()进行转换;其中包括*号运算符,/号运算符,都是经Number()转换+undefined //NaN逻辑运算符:!等价于Boolean(),将操作数进行布尔值类型转换

位操作:~, |, &, ^;当一边操作数为NaN时,可等价于操作数为0;//由以下变化可以证得:

NaN ^ NaN ^ NaN = 0加号运算符,比较复杂

优先级最高的是字符串,任何操作数与字符串相加都将其String(x)成字符串,再进行字符串拼接console.log("a" + 1); //"a1"

console.log("a" + "1"); //"a1"

console.log("a" + false); //"afalse"

console.log("a" + undefined); //"aundefined"

console.log("a" + NaN); //"aNaN"

console.log("a" + null); //"anull"

console.log("a" + {}); //"a[object Object]"

其次number,而object在正常情况下输出的就是string类型//console.log(1 + "1"); //"11"

console.log(1 + 1); //2

console.log(1 + true); //2

console.log(1 + undefined); //NaN

console.log(1 + NaN); //NaN

console.log(1 + null); //1

console.log(1 + {}); //"1[object,Object]"

当一方为Boolean,或者两方都是Boolean时,都将其进行Number处理,同理undefined与null也一样console.log(true + true); //2

console.log(true + undefined); //NaN

console.log(true + NaN); //NaN

console.log(true + null); //1

console.log((true + [NaN])); //"trueNaN"减号,则将两边都进行Number()处理

比较运算:==, >, =, >=, != 遵循规则(摘自高程3):1.null和undefined是相等的

2.要比较相等之前,不能将null和undfined转换成其他任何值

3.如有一个操作数为NaN,相等操作符返回fasle,不相等操作符返回true, NaN不等于NaN

4.两个对象之间的比较,两者指向同一个对象(地址相同),相等操作符返回true,否则返回false

值得注意的是:对象间的>=与==(!=)比较方式是不同的,前者是toString()返回值的比较,后者是引用地址的比较

当都是两边都是字符串时,按字符编码大小进行比较

当一方操作数为boolean,string,object,转成number类型的数值再进行比较;console.log("NaN" == NaN); //false

console.log(undefined == null); //true

console.log({} >= {1:2}); //true

console.log({1:2} != {}); //true

console.log({} == {1:2}); //false

console.log([1] == [1]); //false

console.log(null == 0); //false

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值