对于一些重要的变量,但愿可以封装到某一内部做用域,避免其全局污染 (任意更改)。经过返回一个函数,该函数可以操纵内部变量,暴露出访问的方法。数组
function fn1(){ var n =0; return function add() { n++; console.log(n); } } //实现了外部访问内部变量。 let f =fn1(); f();//1 f();//2 f();//3
六大数据类型:null,undefined,string,boolean,number,symbol闭包
1.typeof粗略判断:缺点:null,数组断定均视为对象 let a =[1,2,3]; //object let b={name:"xmj"};//object let c=null; //object let d ='eeee';//string 2.instanceof:原型链继承判断:原型链 null->object->([],function); 从下到上查找最近的父原型。eg:let x =[], x instanceof Array ==true 特色:能够区分[]和{};[].__proto__ =Array.prototype; 即数组的instanceof是Array,而对象的最近父原型是Object; 3.constructor:相似instanceof 4.Object.ptototype.toString:能够判断全部的像function,obj,和[]的区别。