上个月面试一家公司出的 javascript 考题
其中有几题很有趣 列出来跟大家讨论
1. === 跟 == 这两个算子谁比较快?
a. === 快
b. == 快
c. 一样快
d. 不一定 看状况
我写 a
但是后面注解 //有人在管 js 的低阶运算效能吗??!! 根本一样快吧...
后来主管说服我说 == 要多做一次形态转换 所以比较慢
2.
var ary = [];
for(var i = 0; i < 10; ary[i++] = i);
alert(ary); //显示为何?
a. 0,1,2,3,4,5,6,7,8,9
b. 1,2,3,4,5,6,7,8,9,10
c. 语法错误 当掉
d. 不一定 看状况
这题我写 a
但我后面注解 //实际上这是 "未定义行为" 任何后果都有可能 要看js引擎的实作
但是主管很肯定答案是 b
他觉得 i++ 先取值再+1 而且取完值后 一定在中括号内就作完 +1 的动作
3. 写出你有用过的 pattern 跟 framework 并简单介绍
这题我空白...
虽然主管只是想测试我反应 考试答案正不正确不是重点
但是我还是想知道 这几题有没有更好更正统的解释?