-
for in 循环查看全部
-
bind()方法:绑定this指向的对象; this.x = 9; var module = { x : 81; getX : function(){ return this.x; } }; module.getX(); //81 var getX = module.getX; getX(); //9 var boundGetX = getX.bind(module); boundGetX(); //81 81查看全部
-
appaly() / call() 他们的第一个参数为this指向的对象,如果为基本数据类型,会被转换为相应的包装类型; function foo(x,y){ console.log(x,y,this); } foo.call(100,1,2); // 1 2 Number {[[PrimitiveValue]]: 100} foo.apply(true,[3,4]); //3 4 Boolean {[[PrimitiveValue]]: true} foo.apply(null); //defined undefined unwindow foo.apply(undefined);////defined undefined unwindow查看全部
-
函数属性 & arguments function foo(x,y,z){ …… } foo(1,2); foo.length; //3 foo.name; //"foo"查看全部
-
使用 + 或者 !将匿名函数变为函数表达式而不是函数声明查看全部
-
使用 new Function 等里面是不能访问到变量 i 的查看全部
-
作用域嵌套形成的作用域链,也就是闭包中的函数变量可以访问到外层函数变量查看全部
-
作用域有全局、函数、eval 等作用域,JavaScript中是没有块级作用域的查看全部
-
闭包有浪费空间、内存泄漏、影响性能等缺点查看全部
-
闭包还可以实现数据的封装查看全部
-
闭包常见错误,第一个循环其实每次都打印 4,而使用闭包将 参数 i 传到匿名函数里后就可以取到对应的 i查看全部
-
闭包中的变量不会被垃圾回收,回调函数仍可以访问到变量查看全部
-
非严格模式判断,类型相同则返回true,和严格模式一样,如果类型不同则尝试隐式转换比较查看全部
-
严格模式的判断===,如果类型不同则返回false, 如果类型相同,则返回true, 但是 NaN != NaN,两个对象不相等,空对象也不相等查看全部
-
JavaScript将变量转为数字: num - 0; 将变量转为字符串: num + "";查看全部
举报
0/150
提交
取消