区别数据类型和变量类型
- 数据类型
- 基本类型:Number,String,Boolean,null,undefined,symbol
- 引用类型:对象类型(object,function,date,array,正则),
变量类型(变量内存值得类型)
- 基本类型:保存的是基本类型的数据
- 引用类型:保存的是地址值
引用变量赋值问题
- 其实是把a的首地址赋值给b,导致a和b都指向同一个对象内存
var a = {name:'xq'};
var b = a;
a.name = '77';
console.log(b.name); //'77'
- 其实是把a的首地址赋值给b,导致a和b都指向同一个对象内存
undefined 和 null 的区别
undefined代表定义为赋值
null定义并赋值了,只是值为null
var a;
console.log(a); // undefined
a = null;
console.log(a); // null
typeof null === object,可以理解为空对象,但是是JS设计失误
var a = null; // 初始值为null,表明将要赋值为对象
a = [0,1,2];
a =null; // 让a指向的对象成为垃圾对象(被垃圾回收器回收)
初始赋值,表明将要赋值为对象
结束前,让变量赋值为null,可以让对象成为垃圾对象(垃圾回收)
回调函数
定义了;没有调用;但是最终执行了。
常见回调函数
DOM事件回调函数
定时器回调函数
Ajax请求回调函数
立即调用函数(IIFE,Immediately)
作用:隐藏实现,不会污染外部(全局)命名空间
(function(){ // 匿名函数自调用
var a = 3;
console.log('...')
})();