当前位置: 代码迷 >> 综合 >> js 易忘知识点 常用知识点 笔记
  详细解决方案

js 易忘知识点 常用知识点 笔记

热度:96   发布时间:2024-02-12 02:39:21.0

  易忘知识点1:

隐式转换:

再不同类型的数据进行计算时,会进行数据类型的隐式转换。(类型转换需要注意转换为Number(隐式转换使用Number()进行的)类型时‘ ’,false,undefined,null,空数组,转换为0。转换为Boolean类型,null,undefined,0,NAN,空字符串都为flase)

1)在使用”+“的时候,出现字符就会进行字符串链接,隐式转换为字符类型。

2)使用 "-" ”*“”/“的时候会转换为Boolean型进行数据转换,类型

3)使用==,时如果两边是其他类型先转换为Number类型在进行比较,当然如果是字符串就进行unicode码(charCodeAt)比较,常见的进行unicode进行比较的是sort()方法,如果你不给这个方法加入参数,那么在进行数字比较时他会把他们转成string类型进行比较。(注意比较时,先比较第一个字符的unicode是否相等,如果相等就进行下一个字符的比较)复杂类型进行比较时先Valueof和stringto转换为字符串类型然后再转换为number类型进行比较。

实例:

console.log([]==false);//true      转换为Number类型

console.log([1,2]>[1]);//true

console.log(![]==flase);//true    这是个坑,[]先转换为Boolean类型true(遇到!时隐式转换为Boolean类型),然后取反变为false

几种特殊的

var obj=[1,2];

var obj1={};

console.log(obj=="1,2")//true

console.log(obj.valueOf().tostring()=="[object Object]")//true

4)在遇到有返回值的方法或函数时,一定要注意隐式转换的问题。

实例:console.log(typeof (”21”)==typeof("2"));

           console.log(typeof (NAN)==typeof("NAN"));

优先级:

 

符号优先级问题:(从高到低)

.()[]

一元运算符(++ --  typeof void...)

乘除运算符(* /)

加减运算符(+ -)

移位(>><<)

关系运算符(> <)

相等 严格相等(== ===  !==)

按位与(&)

按位异或(^)

按位或(|)

逻辑与(&&)

逻辑或(||)

条件(三目运算符)

赋值运算(+= *= =)

,

例:

var a=0;

a-=1?a++:++a;//首先三目运算符优先级-=运算符是最低的 那么1就变为了a++也就是0那么a=0; 

console.log(a)//0

 

  相关解决方案