问题来源
https://github.com/h5bp/Front-end-Developer-Interview-Questions/tree/master/Translations/Chinese
问题:foo的值是什么?
var foo = 10 + '20';
解:
foo变量成为了值为"1220"的字符串
问题:如何实现以下函数?
add1(2, 5); // 7
add2(2)(5); // 7
解:
function add1() { var j = 0; for (var i = 0; i < arguments.length; i++) { j += arguments[i]; } return j }
function add2(i) { return function (j) { return i + j } }
问题:下面的语句的返回值是什么?
"i'm a lasagna hog".split("").reverse().join("");
解:split()将字符串切成数组
reserve()将数组反转
join()将数组组成字符串
所以返回值是"goh angasal a m'i"
问题:window.foo的值是什么?
( window.foo || ( window.foo = "bar" ) );
问题:下面两个 alert 的结果是什么?
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
解:
第一个alert输出"Hello World"
第二个alert会报错,因为外部无法访问局部作用域的变量
问题:foo.length的值是什么?
var foo = [];
foo.push(1);
foo.push(2);
解:
foo.length的值为2,数组推入了2个数
问题:foo.x的值是什么?
var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
解:
foo.x的值是undefined
foo的值为 {n: 2}
问题:下面代码的输出是什么?
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');
解:
输出
one
three
two
网友评论