(function (foo) { return typeof foo.bar; })({ foo: { bar: 1 } });
时间: 2024-06-01 12:07:50 浏览: 9
这段代码的输出结果应该是 "number"。
解释:
- 这是一个立即执行函数表达式(IIFE),接受一个对象作为参数。
- 这个对象有一个属性 "foo",其值是一个有一个属性 "bar" 的对象。
- 函数返回 typeof foo.bar,即 "bar" 属性的类型。
- 由于 "bar" 的值是数字 1,所以返回的类型是 "number"。
相关问题
6.var foo = { bar: function() { return this.baz; }, baz: 1 }; (function(){ return typeof arguments[0]; })(foo.bar);
这段代码的输出结果是 "function"。
代码中定义了一个名为foo的对象,对象包含两个属性:一个名为bar的方法和一个名为baz的属性。bar方法使用this关键字来返回baz属性的值。接下来,代码使用了一个立即执行函数,函数返回了arguments[0]的类型。因为foo.bar是一个函数,所以arguments[0]返回的是函数对象,因此输出结果为 "function"。
function foo(){}; console.log(typeof foo);输出结果为object
这是一个常见的 JavaScript 面试题,答案是函数的类型是 "function" 而不是 "object"。这是因为在 JavaScript 中,函数是一种特殊的对象,它们具有可调用的行为。如果你想要真正的对象类型,可以使用 Object.prototype.toString.call(foo) 来获取。这将返回 "[object Function]"。