今天的题目有点意思,是一道国外的面试题。
(function(foo){ return typeof foo.bar; })({ foo: { bar: 1 } });
各位先看看,想下输出结果是什么?
undefined
我们先分解一下
var baz = { foo: { bar: 1 } }; (function(foo){ return typeof foo.bar; })(baz);
看明白了没有?
其实这一题也可以当作脑筋急转弯。
foo.foo.bar才等于1
只不过用foo这个相同的名字给你整混淆了
最后来个更有意思的,大家思考下哦!嘿嘿~
var x = [typeof x, typeof y][1]; typeof typeof x;