js基础知识(一)

48 阅读1分钟

1、null == undefined //true null === undefined //false

  1. ==(等于)运算符: 用途:用于比较两个值是否相等,不考虑数据类型。 规则:如果两个操作数的类型相同,那么进行普通的相等比较,即比较它们的值是否相等。如果操作数的类型不同,会进行类型转换,然后再比较它们的值是否相等。
  2. ===(全等)运算符: 用途:用于比较两个值是否严格相等,不仅要比较值,还要比较数据类型。 规则:如果两个操作数的类型不同,不会进行类型转换,直接返回false。只有在类型相同的情况下,才会比较它们的值是否相等。

2、怎样判断类型

1.typeof

image.png

2.instanceof

image.png

3.Object.prototype.toString.call()

image.png

4.constructor

image.png

3、0.2 + 0.1 != 0.3

原因:

1.因为浮点数运算的精度问题。在计算机运行过程中,需要将数据转化成二进制,然后再进行计算。

2.js中的Number类型遵循IEEE754标准,在IEEE754标准的64位浮点数相加,因为浮点数自身小数位数的限制而截断的二进制在转化为十进制,就变成0.30000000000000004,所以在计算时会产生误差

4、call、apply、bind区别

通过 applycall 改变函数的 this 指向,他们两个函数的第一个参数都是一样的表示要 改变指向的那个对象,第二个参数,apply 是数组,而 call 则是 arg1,arg2... 这种形式。通 过 bind 改变 this 作用域会返回一个新的函数,这个函数不会马上执行