当期望输出时,Chrome控制台返回未定义

时间:2019-09-03 11:12:05

标签: javascript google-chrome

我在chrome控制台中编写了一些代码来获取网页上的所有功能:

for(var b in window) { 
   if(typeof(b) == "function") console.log(b);}

尽管网页上有功能,但我得到的唯一输出是“未定义”

5 个答案:

答案 0 :(得分:4)

b是窗口对象的KEY,window[b]是值。密钥将始终是字符串。

for(var b in window) { 
   if(typeof(window[b]) == "function") console.log(b);}

答案 1 :(得分:1)

for(var b in window) { 

在这里,您要遍历,而不是对象的属性。这些键中的typeofstring,因此将永远无法满足if下的条件。在控制台中显示的undefinedfor语句的值(未定义)。

改为

for(var b in window) { 
   if(typeof(window[b]) == "function") console.log(window[b]);}

答案 2 :(得分:0)

b是属性名称(字符串),而不是函数本身。尝试这样:

for(var b in window){
    if(typeof window[b]=='function') console.log(b)
}

答案 3 :(得分:0)

b变量曾经是类型字符串,更改左侧条件以获得window功能。

typeof(b)         // return string
typeof(window[b]) // return function

所以答案是这样的:

for(var b in window) { 
    if(typeof(window[b]) === "function") 
    {
        console.log(b);
    }
}

答案 4 :(得分:0)

如果我们考虑您的代码'typeof(b)==“ function”',它将永远不会检查此条件,因为typeof(b)始终是字符串。

获取“字符串”键的基本语法是obj [“ stringFormatKey”]。所以这是解决方案。

for(var b in window) { 
if(typeof(window[b]) == "function") console.log(b);}