原题目地址


f = function() { return true; };
g = function() { return false; };(function() {if (g() && [] == ![]) {f = function f() { return false; };function g() { return true; }}
})();alert(f()); // true or false ?

在IE678中

f = function() { return true; };g = function() { return false; };(function() {//IE中命名函数表达式存在bug,占两份内存,//右边部分会被当成函数声明被吊起到当前作用域顶端function _f() { return false; };//函数声明被吊起到当前作用域顶端function _g() { return true; }
//[] == ![] 这里主要是考究内部函数ToPrimitive
//http://www.cnblogs.com/rubylouvre/archive/2010/10/02/1841143.htmlif (_g() && [] == ![]) {_f = function _f() { return false; };}})();alert(f());//true

在FF中(这里有点意思)

f = function() { return true; };g = function() { return false; };(function() {//FF的函数声明不会吊起到当前作用域顶端,因此这里的g为全局作用域的g,无法进入if分支if (g() && [] == ![]) {f = function f() { return false; };function g() { return true; }}})();alert(f()); //true

下面是测试代码,证明FF不会吊起函数声明。

//by 司徒正美//在闭包内(function(){alert(aaa);if(false){var aaa = "aaa"}})();(function(){try{alert(bbb);}catch(e){alert("发生异常!!")}if(false){function bbb(){ return "bbb" }}})();//在全局作用域下function ccc() { alert('ccc'); }ccc();if(false) {function ccc() { alert('ccc重写'); }}function ddd() { alert('ddd'); }ddd();if(true) {function ddd() { alert('ddd重写'); }}

//在闭包内 (function(){ alert(aaa); if(false){ var aaa = "aaa" } })(); (function(){ try{ alert(bbb); }catch(e){ alert("发生异常!!") } if(false){ function bbb(){ return "bbb" } } })(); //在全局作用域下 function ccc() { alert('ccc'); } ccc(); if(false) { function ccc() { alert('ccc重写'); } } function ddd() { alert('ddd'); } ddd(); if(true) { function ddd() { alert('ddd重写'); } }

运行代码

FF这种行为搞得好像存在块作用域似的,难道又是为了追求速度而不愿修正的bug吗?!

在safari5,opera10,chrome6

f = function() { return true; };g = function() { return false; };(function() {function _g() { return true; }//被吊起if (_g() && [] == ![]) {f = function() { return false; };//重写全局函数f}})();alert(f()); // false

回lifesinger 的国庆题目相关推荐

  1. 回文数系列题目(经典算法)

    回文数 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 请寻找并输出1至1000000之间的数m,它满足m.m^2和m^3均为回文数.回文数大家都知道吧,就是各位数字左右 ...

  2. js把base64串解析成中文_回文问题终极篇:最小代价构造回文串

    学算法认准 labuladong 东哥带你手把手撕力扣? 点击下方卡片即可搜索? 读完本文,你可以去力扣完成第 1312 题「让字符串成为回文串的最少插入次数」,难度 Hard. 回文串就是正着读反着 ...

  3. 动态数组怎么定义_动态规划最长回文子序列

    动态规划|最长回文子序列 今天一起来学习Leetcode第 516 题:最长回文子序列. 题目描述 题目分析 首先回文字符串指的是形如"a","aa",''ab ...

  4. Java黑皮书课后题第6章:**6.3(回文整数)使用下面的方法头编写两个方法:……使用reverse方法实现isPalindrome。如果一个数字的逆序数和它自身相等,这个数就称为回文数。

    6.3(回文整数)使用下面的方法头编写两个方法:--使用reverse方法实现isPalindrome.如果一个数字的逆序数和它自身相等,这个数就称为回文数. 题目 题目概述 破题:假设没有提示语句( ...

  5. CodeForces - 17E Palisection(回文自动机/Palindrome Series优化dp)

    题目链接:点击查看 题目大意:给出一个长度为 n 的字符串,问有多少 相交的回文子串对数 题目分析:背 PAM 模板的时候突然发现了一道模板题,于是顺手写了..正难则反,可以先求出有多少个互不相交的回 ...

  6. HYSBZ - 2342 双倍回文(回文自动机)

    题目链接:点击查看 题目大意:给出一个字符串 s ,求最长双倍回文子串,题目规定双倍回文子串是长度可以被4整除,且前半段.后半段以及整个字串都是回文串 题目分析:因为在构造回文自动机时,连接的失配边就 ...

  7. HYSBZ - 2565 最长双回文串(回文自动机)

    题目链接:点击查看 题目大意:给出一个字符串 s ,求最长双回文子串,题目规定最长双回文子串 t 可以拆成左右两部分,满足两部分都是回文串 题目分析:一开始读错题了,以为是双回文串本身也需要是回文串, ...

  8. 最长回文子串和回文链表

    回文子串和回文链表 文章目录 回文子串和回文链表 一.最长回文子串 1.题目描述 2.分析 3.代码实现 二.判断回文链表 1.问题描述 2. 分析 3.代码 4.优化 三.回文子串 1.问题描述 2 ...

  9. 回文数、罗马数转整数、整数反转

    文章目录 前言 一.整数的回文数判断 1.负数和一位数的判断 2.将整数存进vector容器 3.下标mid和next的定位(关键) 4.循环比较并得出结果 二.罗马数字转整数 1.简介罗马数字 2. ...

  10. P4445 最长回文串

    P4445 最长回文串 题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbcaacbcaacbca是回文串,而abcabcabc不是(abc的顺序为abcabcabc,逆序为cbacbacb ...

最新文章

  1. 学Python,这些内置数据类型总结(数字类型)你可否知道
  2. Bug只让变量生效一次的思路
  3. EFCore查缺补漏(一):依赖注入
  4. c语言——什么时候使用getchar()读取换行符
  5. Xcode 的正确打开方式——Debugging
  6. HiveQL与SQL区别
  7. 鸿蒙os 芯片制程,华为Mate50将如期发布,屏下镜头+鸿蒙OS,再见iPhone12
  8. 汇总丨MySQL GTID技术点,看这一篇就够了!
  9. /usr/include/x86_64-linux-gnu/bits/types/struct_itimespec.h
  10. PAAS平台7#215;24小时可用性应用设计
  11. veevalidate的使用3.X版本
  12. varchar2 汉字长度问题
  13. java对象赋值优雅写法_JavaScript优雅写法及骚操作
  14. 项目中碰见的错误(三) 对路径的访问被拒绝
  15. ad怎么查接线_Altium怎么进行线路的开路检查?
  16. 使用uigi将英雄小头像显示在详细资料中(图片切换)
  17. 思创(Cetron)发布首款企业级Wi-Fi 6 AP
  18. Python正则表达式一文详解+实例代码展示
  19. 解决:CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pk gs/main/win-64/c
  20. 在Mac中删除残留的启动台图标

热门文章

  1. Python3:递归实现输出目录下所有的文件
  2. 软件测试第四组第一周作业第一天
  3. Android:ViewPager
  4. jQuery 学习笔记之十 (jQuery ajax )
  5. 两片关于NAND FLASH的好博客
  6. java中的多态与继承_Java中继承与多态
  7. 【图形学手记】蒙特卡洛积分
  8. C++基础语言知识大汇总(不断更新!!!)
  9. studio2.3app签名打包安装失败,找不到签名证书。
  10. python之requests模块