js代码问题

问题来源
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,196评论 0 13
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 关于前端性能优化问题详解 出处:http://segmentfault.com/blogs 前端性能优化指南 AJ...
    bennnnn阅读 1,613评论 2 4
  • 基础概念 标识符 所谓标识符是指变量、函数、属性的名字,或者函数的参数。标识符的书写有几个特征 区分大小写 第一个...
    卓小生阅读 175评论 0 0
  • 有天我看到很奇怪的两个人像两只蚕孜孜地给彼此扎一个棉花状的茧我问看起来脾气比较好的那个在干嘛他说,造个温柔乡我抬眼...
    仙鱼卷阅读 258评论 6 4