区别
== 检查值相等, 允许类型转换:
两个等号我们称为等值符,当等号两边的值为相同类型时比较值是否相同,类型不同时会发生类型的自动转换,转换为相同的类型后再作比较
=== 检查值和类型相等, 不允许类型转换:
三个等号我们称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false
垃圾回收机制
js垃圾回收机制有引用计数和标记清除两种
引用计数
标量每被引用一次引用计数就会在元素的数字上个加1
当每次引用结束后会减1 当引用次数为0的时候 变量就可以被回收了 回收之后释放内存
标记清除
声明的变量会添加一个标记,变量不在使用的时候会清除标记,
变量进入待删除状态 添加一个待删除标记 浏览器发现有待删除标记的变量就会直接回收
this指向
有三个方法能改变this指向,fn.bind()、 fn.call() 、fn.apply()
他们都是改变this指向的方法 第一个参数都是this的指向
区别:
bind返回一个函数
call的参数是以散落的形式传递给函数
apply是以数组的形式传递参数
bind有返回值 返回值是调用bind方法的函数本身
call 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以散落的形式传递给函数作为实参
apply 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以数组的形式传递给函数作为实参