(function (foo) { return typeof foo.bar; })({ foo: { bar: 1 } });
时间: 2024-06-01 12:07:50 浏览: 58
这段代码的输出结果应该是 "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"。
JavaScript中运算符种类繁多,常用的运算符有赋值、逻辑、关系运算符,以下运算结果正确的是 1. var a=0,b=0; var c=a+++b; a b c的值分别为:111 2. 1&&"foo"| 0 表达式的值为:"foo” 3. 1|| "foo"&& 0 表达式的值为:"foo" 4. typeof 2+3 表达式的值为:"number” A:1 B: 2 C: 3 D:4
正确答案是 B.
1. `var a=0,b=0; var c=a+++b; a b c` 的值分别为:1 1 0。因为 `a+++b` 相当于 `a++ + b`,`a` 的值会先自增为 1,然后与 `b` 相加得到 1,赋值给 `c`,所以 `a` 的最终值为 1。
2. `1&&"foo"| 0` 的值为 `"foo"`。因为 `1&&"foo"` 的结果为 `"foo"`,而 `"foo"| 0` 的结果为 `"foo"`,因为位或运算符会将字符串转换为数字。
3. `1|| "foo"&& 0` 的值为 `1`。因为 `1 || "foo"` 的结果为 `1`,而 `0` 被视为假值,所以 `1 || "foo" && 0` 的结果为 `1`。
4. `typeof 2+3` 的值为 `"number3"`。因为 `typeof 2` 的结果为 `"number"`,而 `"number" + 3` 的结果为 `"number3"`。
阅读全文