首页 > Web开发 > 详细

js笔试题

时间:2015-08-18 19:28:22      阅读:204      评论:0      收藏:0      [点我收藏+]
f = function() {return true;};  g = function() {return false;};
(function() {
    if (g() && [] == ![]) {
        f = function f() {return false;};
        function g() {return true;}
    }
})();
console.log(f());

分析以上代码,结果为false.

函数定义的两种形式:

(1)var a = function(){}

这种只能先声明后调用

(2)function a(){}

这种可以先调用后声明


所以if中的g()在自己匿名函数的作用域中先找到

function g() {return true;}

然后[] == ![]解释:typeof []-->object类型但是空,![]-->Bealean类型是false,所有的空或0都是false.false==false返回true

最后进入if(true)后,改变了全局的f变量,所以返回的是false.


版权声明:本文为博主原创文章,未经博主允许不得转载。

js笔试题

原文:http://blog.csdn.net/u014682977/article/details/47754065

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!