Javascript函数在chrome中针对不同实例返回不同的函数结果

Javascript函数在chrome中针对不同实例返回不同的函数结果,javascript,google-chrome,Javascript,Google Chrome,首先,我在chrome控制台中执行了下面的脚本 var x=1;如果(函数f(){}){x+=typeof f;}x当您打开chrome的另一个选项卡时,默认情况下会打开Google主页。如果您第一次从控制台执行脚本,它将打印1对象。因为页面上有一个javascript文件,它将变量F定义为object。你可以在这里查一下 由于大多数站点缩小js文件,变量名为A、B 这不是魔术:)你到底是如何执行的f()?我复制粘贴控制台的结果。。。。var x=1;如果(函数f(){}){x+=typeof

首先,我在chrome控制台中执行了下面的脚本


var x=1;如果(函数f(){}){x+=typeof f;}x当您打开chrome的另一个选项卡时,默认情况下会打开Google主页。如果您第一次从控制台执行脚本,它将打印1对象。因为页面上有一个javascript文件,它将变量F定义为object。你可以在这里查一下

由于大多数站点缩小js文件,变量名为A、B


这不是魔术:)

你到底是如何执行的
f()
?我复制粘贴控制台的结果。。。。var x=1;如果(函数f(){}){x+=typeof f;}x;“1未定义”函数f(){}未定义变量x=1;如果(函数f(){}){x+=typeof f;}x;“1function”另一个实例结果..var x=1;如果(函数f(){}){x+=typeof f;}x;“1object”newtab?espv=2&ie=UTF-8:1应用程序缓存检查事件您确定没有在定义了页面其他地方名为
f
的变量的页面上运行此操作吗?正确的结果是
“1undefined”
,因为
if(function f(){})
这里是一个命名函数表达式,它不会在当前范围内创建变量标识符。当您单独运行
函数f(){}
时,它是一个函数声明,在当前范围内创建一个名为
f
的变量。当您打开一个新选项卡时,
window.f
是对包装google搜索输入的表单元素的引用。。。