javascript易错知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript易错知识相关的知识,希望对你有一定的参考价值。

1、在try-catch语句中,finally子句是可选的,当包含finally子句的时候,无论try还是catch语句中的return语句都会被忽略。所以,我们在使用finally子句的时候,要想清楚我们希望代码如何执行。

 function fn () {
     try {
         a++;
     }
     catch(error) {
         console.log("in catch");
         return;
     }
     finally {
         console.log("in finally");
     }
 } 

 fn();   // in catch   in finally

2、jvascript中void是一个操作符,该操作符指定要计算一个表达式并且返回undefined。譬如underscore中就用void 0代替undefined。

3、undefined 并不是保留词(reserved word),它只是全局对象的一个属性,在低版本 IE 中能被重写。所以直接使用undefined可能是不靠谱的。那么如何保证能保证取到undefined的值呢?可以采用如下两种方案:

jquery版:

(function( window, undefined ) {
    //...
})( window );

这样写的优势:

  • window和undefined都是为了减少变量查找所经过的scope作用域。当window通过传递给闭包内部之后,在闭包内部使用它的时候,可以把它当成一个局部变量,显然比原先在window scope下查找的时候要快一些。(原来的window处于作用域链的最顶端,查找速度慢)
  • 在jquery压缩版本jquery.min.js中可以将局部变量window替换成单个字母,减小文件大小,提高加载速度技术分享
  • 将undefined作为参数传递给闭包,因为没给它传递值,它的值就是undefined。所以可以得到确切的undefined。

underscore版:

_.isUndefined = function(obj) {
    return obj === void 0;
}

4、

 

以上是关于javascript易错知识的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript易错知识点整理

JavaScript易错知识点整理

JavaScript 易错知识点整理

JavaScript易错知识点整理

JavaScript易错知识点整理

JavaScript易错知识点整理