typeof :
- 可以判断undefined/数值/string/boolean/function
- 不可以判断:null与object object与array
instanceof 实例化对象
===:undefined、null
undefined、null区别:
undefined:定义了未赋值
null:定义并赋值了,值为nul。(释放内存地址的时候赋值为null。初始赋值为null,表名将要赋值为对象)
数据类型和变量类型:
数据类型:基本数据类型和,对象类型
变量类型(变量内存值的类型):基本类型。引用类型(保存的地址)。
数据,变量和内存
数据(存储在内存中代表特定信息的东西,可传递,可运算,)
内存:存储数据的空间。
变量:可变化的量 ,变量名(查找对应的内存)和变量值(内存中保存的数据)
三者之间的关系:
变量是内存的标识,内存用来存储数据空间。
JS引擎如何管理内存:
内存的生命周期:分配小内存空间,得到使用权,存储数据,可以反复进行操作,释放当前的小内存空间。
释放内存。
函数:
实现特定功能的n条语句封装体
可以执行的
提高Demo复用,提高可读性。
回调函数:定义的,没有调用,但是最终执行了。
dom,定时器,ajax,生命周期回调函数。
IIFE
Immediately-Invoked Function Expression 立即调用函数
匿名函数自调用
隐藏实现,不会污染外部(全局)命名空间。
(function(){
var a = 1;
function test(){
console.log(++a);
}
window.$ = function(){//向外暴露一个全局函数
return{
test: test//¥是一个函数
//$执行后返回的是一个对象
}
}
})()
//调用方法
$().test();
this是所有函数内部都有的this, 值是调用函数的当前对象(任何函数本质上都是通过某个对象来调用的)