您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js隐式转换的知识讲解(附示例)

2024/10/28 2:18:13发布46次查看
本篇文章给大家带来的内容是关于js隐式转换的知识讲解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
开胃菜[] == ![]                  //true  ==>  == false123 ^ []                   //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);           //a1console.log(a + 1);         //a1console.log(a + false);       //afalseconsole.log(a + undefined);   //aundefinedconsole.log(a + nan);         //ananconsole.log(a + null);        //anullconsole.log(a + {});          //a[object object]
其次number,而object在正常情况下输出的就是string类型
//console.log(1 + 1);     //11console.log(1 + 1);         //2console.log(1 + true);      //2 console.log(1 + undefined); //nanconsole.log(1 + nan);       //nanconsole.log(1 + null);      //1console.log(1 + {});        //1[object,object]
当一方为boolean,或者两方都是boolean时,都将其进行number处理,同理undefined与null也一样
console.log(true + true);      //2 console.log(true + undefined); //nanconsole.log(true + nan);       //nanconsole.log(true + null);      //1console.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);         //falseconsole.log(undefined == null);    //trueconsole.log({} >= {1:2});          //trueconsole.log({1:2} != {});          //trueconsole.log({} == {1:2});          //falseconsole.log([1] == [1]);           //falseconsole.log(null == 0);            //false
以上就是js隐式转换的知识讲解(附示例)的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product