[js测试]JavaScript Web Quiz By davidshariff
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”
参考资料
[js测试]JavaScript Web Quiz By davidshariff的更多相关文章
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-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 ...
- [转] 国内外最全面和主流的JS框架与WEB UI库(强烈推荐)
国内外最全面和主流的JS框架与WEB UI库... 当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同 ...
- 国内外最全面和主流的JS框架与WEB UI库
当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同浏览器的兼容性也不需要程序员操心,有了这些优点,当然大家 ...
- 通过Jasmine和Guard自动测试JavaScript
原文标题:Autotesting JavaScript with Jasmine and Guard 原文地址:http://edspencer.net/2013/06/15/autotesting- ...
- OS.js – 开源的 Web OS 系统,赶快来体验
OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...
- Rainyday.js – 使用 JavaScript 实现雨滴效果
Rainyday.js 背后的想法是创建一个 JavaScript 库,利用 HTML5 Canvas 渲染一个雨滴落在玻璃表面的动画.Rainyday.js 有功能可扩展的 API,例如碰撞检测和易 ...
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
- 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍
使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 来自译者 markzhai:大家也知道最近 ...
随机推荐
- hibernate 插入Java.uitil.date时时分秒丢失问题解决
<property name="cj_time" column="cj_time"/> 不需要手动定义类型(定义了只能精确到日) new Date ...
- Go copy 的使用
copy 可以将后面的 第2个切片的元素赋值copy 到第一个切片中 package main; import "fmt" func test () { s1 := []int{1 ...
- 人生苦短_我用Python_openpyxl库读取Excel文件数据_008
上图为读取的目标文件--------------------------------------------------------------------------------- # coding ...
- ajax处理返回的三种格式(json格式 , xml通用格式 , html文本格式)(数据类型:整数、字符串、数组、对象)(基础最重要!)
ajax方法的参数 常用的ajax参数比如url,data,type,包括预期返回类型dataType,发送到服务器的数据的编码类型contentType,成功方法,失败方法,完成方法.除了这些以外还 ...
- 理解Java构造器中的"this"
Calling Another Constructor if the first statement of a constructor has the form this(...), then the ...
- vue 项目的运行与 打包
1.vue init webpack 2.npm install axios 3.npm run dev 运行项目 4.npm run build 打包项目 会生成一个dist 文件夹,我们只需要把 ...
- python学习笔记(二)列表操作
列表及列表操作: 列表是最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可:列表里面可以再套列表,一个里面套一个列表,叫二维数组:一个里面套一个列表,里面的列表再套一个列表,这个叫三位数组,套 ...
- php pow()函数 语法
php pow()函数 语法 作用:pow()函数的作用是将一个数进行n次方计算后返回,广东大理石平台 语法:pow(X,Y); 参数: 参数 描述 X 要做处理的数字 Y 指定n次方中的n数值 说明 ...
- paper 162:卷积神经网络(CNN)解析
卷积神经网络(CNN)解析: 卷积神经网络CNN解析 概揽 Layers used to build ConvNets 卷积层Convolutional layer 池化层Pooling Layer ...
- 51nod 1518 稳定多米诺覆盖(容斥+二项式反演+状压dp)
[传送门[(http://www.51nod.com/Challenge/Problem.html#!#problemId=1518) 解题思路 直接算不好算,考虑容斥,但并不能把行和列一起加进去容斥 ...