Question1

var foo = function foo() {
console.log(foo === foo);
};
foo();

输出是“true”,因为foo就指代变量foo,两个是相等的。如果改成这样同样成立:

var foo = function() {
console.log(foo === foo);
};
foo();

Question2

function aaa() {
return
{
test: 1
};
}
alert(typeof aaa());

此题初看返回是一个object,但是注意return后面有一个换行,因此程序会如下执行:

function aaa() {
return;
{
test: 1
};
}
alert(typeof aaa());

返回值是undefined。

Question3

Number("1") - 1 == 0;

Number函数可以将非数值转换为数值,Number("1")为1,所以正确。

Question4

(true + false) > 2 + true;

"+"运算符会将值自动转换为number,

true + false = 1

然后变为

1 > 2 + true

“+”优先级大于“>”

1 > 3

因此答案为false。

Question5

function bar() {
return foo;
foo = 10;
function foo() {}
var foo = '11';
}
alert(typeof bar());

函数声明会被提前,因此执行顺序如下:

function bar() {
function foo() {}
return foo;
foo = 10;
var foo = '11';
}
alert(typeof bar());

所以返回的function类型。

Question6

"1" - - "1";

等价于1 - (-1),所以为2.

Question7

var x = 3;

var foo = {
x: 2,
baz: {
x: 1,
bar: function() {
return this.x;
}
}
} var go = foo.baz.bar; alert(go());
alert(foo.baz.bar());

答案是3,1.this指向函数所属的对象。

Question8

new String("This is a string") instanceof String;

3个特殊的引用类型,String,Boolean,Number

Question9

[] + [] + 'foo'.split('');

"+"用在数组上时候,空数组转换为空字符串,非空数组转换为逗号分隔的字符串。

"" + "" +  "f,o,o" = "f,o,o"

Question10

new Array(5).toString();

数组转换为字符串,undefined转换为空字符串,答案是:",,,,"

Question11

var myArr = ['foo', 'bar', 'baz'];
myArr.length = 0;
myArr.push('bin');
console.log(myArr);

['bin']

Question12

String('Hello') === 'Hello';

注意是String函数而不是new String ,所以结果为true

Question13

var x = 0;
function foo() {
x++;
this.x = x;
return foo;
}
var bar = new new foo;
console.log(bar.x);

这个写错了,不是很确定,应该是返回的都是foo是函数,函数是没有x这个属性的。返回undefined,不知对不对。

Question14

"This is a string" instanceof String;

字符串只是基本数据类型,不是对象,也不可能是任何对象实例,结果为 false

Question15

var bar = 1,
foo = {}; foo: {
bar: 2;
baz: ++bar;
};
foo.baz + foo.bar + bar;

foo:{}这种语法在js中称为labeled声明,对于前面定义的空对象foo并没有任何卵影响,所以foo.bar,foo.baz都等于undefined,“+”将其转换为NaN,任何数据加NaN都会返回NaN,所以答案是NaN。

Question16

var myArr = ['foo', 'bar', 'baz'];
myArr[2];
console.log('2' in myArr);

in操作在js中是检测某个属性是否存在于对象中,数组的长度是3,有0,1,2的numeric属性,返回true。

Question17

var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr.foo = 'c';
alert(arr.length);

数组的长度仅受numeric属性的影响。返回2.

Question18

10 > 9 > 8 === true;

解析:

((10 > 9) > 8) === true;
(true > 8) === true;
(1 > 8) === true;
false === true;
false;

Question19

function foo(a, b) {
arguments[1] = 2;
alert(b);
}
foo(1);

argunments对象仅仅包含传入foo的参数。返回undefined

Question20

NaN === NaN

NaN不与任何值相等,包括NaN本身。注意typeof NaN 返回“number”

参考资料

reddit

[js测试]JavaScript Web Quiz By davidshariff的更多相关文章

  1. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  2. Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) based on Node.js / server-side JavaScript? - Quora

    Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) ba ...

  3. [转] 国内外最全面和主流的JS框架与WEB UI库(强烈推荐)

    国内外最全面和主流的JS框架与WEB UI库...   当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同 ...

  4. 国内外最全面和主流的JS框架与WEB UI库

    当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同浏览器的兼容性也不需要程序员操心,有了这些优点,当然大家 ...

  5. 通过Jasmine和Guard自动测试JavaScript

    原文标题:Autotesting JavaScript with Jasmine and Guard 原文地址:http://edspencer.net/2013/06/15/autotesting- ...

  6. OS.js – 开源的 Web OS 系统,赶快来体验

    OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...

  7. Rainyday.js – 使用 JavaScript 实现雨滴效果

    Rainyday.js 背后的想法是创建一个 JavaScript 库,利用 HTML5 Canvas 渲染一个雨滴落在玻璃表面的动画.Rainyday.js 有功能可扩展的 API,例如碰撞检测和易 ...

  8. Gremlins.js – 模拟用户随机操作的 JS 测试库

    Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...

  9. 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍

      使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 来自译者 markzhai:大家也知道最近 ...

随机推荐

  1. 【LeetCode】栈 stack(共40题)

    [20]Valid Parentheses (2018年11月28日,复习, ko) 给了一个字符串判断是不是合法的括号配对. 题解:直接stack class Solution { public: ...

  2. Sass函数:Sass Maps的函数-map-has-key($map,$key)

    map-has-key($map,$key) 函数将返回一个布尔值.当 $map 中有这个 $key,则函数返回 true,否则返回 false. 前面的示例,当 $key 不在 $map 中时,使用 ...

  3. Altium Designer 19 单层显示

    PCB视图下,按快捷键L 弹出对话框 选择 view options 选项卡 Single Layer Mode 点击为on 快捷键为Shift + s

  4. nyoj 762:第k个互质数

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=762 直接给代码好了,容斥原理具体看<组合数学> #include<bi ...

  5. 零基础python教程-Python解释器是什么?

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的 ...

  6. 企业级Web服务器安全主动防御措施

    篇一 : 企业级Web服务器安全主动防御措施 Web服务器现在已经成为了病毒.木马的重灾区.不但企业的门户网站被篡改.资料被窃取,而且还成为了病毒与木马的传播者.有些Web管理员采取了一些措施,虽然可 ...

  7. 4412 GPIO读 和 ioremap控制GPIO寄存器

    一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...

  8. LOJ 3124 「CTS2019 | CTSC2019」氪金手游——概率+树形DP

    题目:https://loj.ac/problem/3124 看了题解:https://www.cnblogs.com/Itst/p/10883880.html 先考虑外向树. 考虑分母是 \( \s ...

  9. [NOIP2017]逛公园 题解

    我连D1T3都不会我联赛完蛋了 题目描述 策策同学特别喜欢逛公园.公园可以看成一张 N 个点 M 条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口, N 号点是公园的出口,每条边有一个非负 ...

  10. python数据分析中常用的库

    Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...