看看国外的 JS 题,你能全部做对吗?

724 查看

以前看过一套 JavaScript 题目,借花献佛拿出来分享一下。附带了自己的理解和答案。有争议的地方,欢迎大家指出和讨论。

题目一

答案:“object”
arguments是对象,伪数组有两件事要注意这里:
参数不是数组,它是一个数组一样的物体,你可以使用方括号和整数索引的元素,但方法通常可在一个如推上不存在参数数组
Array.prototype.slice.call(arguments); 转成数组
当然arguments即使是数组,返回的依然是”object”,因为数组也是对象,附加:typeof 对类型的判断
https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Operators/typeof

题目二

答案:会发生错误
因为function g(){ return 23; }是函数表达式,事实上只有事一个名字,不是一个函数声明
函数实际上是绑定到变量f,不是g.
指定的标识符在函数表达式虽然有其用途:堆栈跟踪是清晰而不是充斥着无名的函数,你可以有一个匿名函数递归调用本身不使用argument.callee
附非常详细的帖子函数表达式
http://kangax.github.io/nfe/

题目三

答案:1
参数不可删除
见我发过的帖子(js中的delete定义)
http://www.cnblogs.com/aaronjs/articles/3148934.html
国外的帖子(理解删除)
http://perfectionkills.com/understanding-delete/

题目四

题目五