一些奇怪的JavaScript试题

JavaScript有很多地方和我们熟知的C、Java等的编程习惯不同,这些不同会产生很多让人意想不到的事情。前段时间在知乎有人发了写Javascrtip试题,觉得挺好玩的,这里跟大家分享一下。定州市科技工业局

01

1 (function () { 
2     return typeof arguments; 
3 })(); 
4 A. "object"
5 B. "array"
6 C. "arguments"
7 D. "undefined"

答案:A

02

1 var f = function g() {
2         return 23;
3     };
4 typeof g();
5 A. "number"
6 B. "undefined"
7 C. "function"
8 D. Eorror

答案:D

03

1 (function (x) {
2     delete x;
3     return x;
4 })(1);
5 A. 1
6 B. null
7 C. undefined
8 D. Error

答案:A

04

1 var y = 1,
2     x = y = typeof x;
3 x;
4 A. 1
5 B. "number"
6 C. undefined
7 D. "undefined"

答案: D

05

1 (function f(f) {
2     return typeof f();
3 })(function () {
4     return 1;
5 });
6 A. "number"
7 B. "undefined"
8 C. "function"
9 D. Error

答案:A

06

01 var foo = {
02     bar: function () {
03         return this.baz;
04     },
05     baz: 1
06 };
07 (function () {
08     return typeof arguments[0]();
09 })(foo.bar);
10 A. "undefined"
11 B. "object"
12 C. "number"
13 D. "function"

答案:A

07

01 var foo = {
02     bar: function () {
03         return this.baz;
04     },
05     baz: 1
06 };
07 typeof (f = foo.bar)();
08 A. "undefined"
09 B. "object"
10 C. "number"
11 D. "function"

答案:A

08

01 var f = (function f() {
02     return "1";
03 }, function g() {
04     return 2;
05 })();
06 typeof f;
07 A. "string"
08 B. "number"
09 C. "function"
10 D. "undefined"

答案: B

09

1 var x = 1;
2 if (function f() {}) {
3     x += typeof f;
4 }
5 x;
6 A. 1
7 B. "1function"
8 C. "1undefined"
9 D. NaN

答案: C

10

1 var x = [typeof x, typeof y][1];
2 typeof typeof x;
3 A. "number"
4 B. "string"
5 C. "undefined"
6 D. "object"

答案: B

11

01 (function (foo) {
02     return typeof foo.bar;
03 })({
04     foo: {
05         bar: 1
06     }
07 });
08 A、“undefined”
09 B、“object”
10 C、“number”
11 D、Error

答案: A

12

01 (function f() {
02     function f() {
03         return 1;
04     }
05     return f();
06     function f() {
07         return 2;
08     }
09 })();
10 A、1
11 B、2
12 C、Error (e.g. “Too much recursion”)
13 D、undefined

答案:B

13

1 function f() {
2     return f;
3 }
4 new f() instanceof f;
5 A、true
6 B、false

答案:B

14

view source

print?

1 with (function(x, undefined){}) length;
2 A、1
3 B、2
4 C、undefined
5 D、Error

答案:B

具体答案大家可以自己运行得出,为什么会得出这样的结果,我也有一些不懂的地方,怕误人子弟,所以这里就不解答这里的问题了。

时间: 2024-08-30 06:50:15

一些奇怪的JavaScript试题的相关文章

一些奇怪的Javascript用法

阅读AngularJS时,看到一些奇怪的Javascript用法.1.(function(){        a.work=function(){}   })(a)   声明一个匿名函数并执行 2. (new (function(){        this.al=function(){alert(123);};   })).al(); 一样是声明匿名函数并实例化一个对象   一个变体:    function Mouse(a){        this.al=function(){      

Javascript 试题汇集

1.点击一个按钮,打开一个页面的几种方法: <input type="button" value="location" onclick="window.location='index1.html'"> <input type="button" value="assign" onclick="location.assign('index1.html')"> <

JavaScript中的两个等号(==)和三个等号(===)

"Determining whether two variables are equivalent is one of the most important operations in programming." (确定两个变量是否相等是编程中最重要的操作之一)--Nicholas Zakas JavaScript中作比较有两个方式:严格模式(strict comparison 使用三个等号 ===)和概要模式(abstract comparison 使用两个等号 ==),对于他们的意

AJAX基础(一)

你是什么?(AJAX简介) AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. 主要包含了以下几种技术: Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示: 使用 DOM(Document Object Model)进行动态显示及交互: 使用 XML 

Ajax的简单总结

1. Ajax的优势和不足 1.1 Ajax的优势 1. 不需要插件支持 Ajax不需要任何浏览器插件,就可以被绝大多数主流浏览器所支持,用户只需要允许JavaScript在浏览器上执行即可. 2. 优秀的用户体验 Ajax能在不刷新整个页面的前提下更新数据,这使得Web应用程序能更为迅速地回应用户的操作. 3. 提高Web程序的性能 与传统模式相比,Ajax模式在性能上的最大区别就在于传输数据的方式,在传统模式中,数据提交是通过表单来实现的,而数据获取是靠页面刷新来重新获取整页的内容.而Aja

Swift 烧脑体操(三) - 高阶函数

前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困难.不过一切都是值得的,Swift 相比 Objective-C,写出来的程序更安全.更简洁,最终能够提高我们的工作效率和质量. Swift 相关的学习资料已经很多,我想从另外一个角度来介绍它的一些特性,我把这个角度叫做「烧脑体操」.什么意思呢?就是我们专门挑一些比较费脑子的语言细节来学习.通过「烧

转自Alon&#39;s Blog

JavaScript 错误以及如何修复 发表于 2015-02-01   |   分类于 JavaScript  | 原文<JavaScript Errors and How to Fix Them>作者:Jani Hartikainen翻译:涂鸦码农 JavaScript 调试是一场噩梦:首先给出的错误非常难以理解,其次给出的行号不总有帮助.有个查找错误含义,及修复措施的列表,是不是很有用? 以下是奇怪的 JavaScript 错误列表.同样的错误,不同的浏览器会给出不同的消息,因此有一些不

轻松搞定javascript预解析机制(搞定后,一切有关变态面试题都是浮云~~)

hey,guys!我们一起总结一下JS预解析吧! 首先,我们得搞清楚JS预解析和JS逐行执行的关系.其实它们两并不冲突,一个例子轻松理解它们的关系: 你去酒店吃饭,吃饭前你得看下菜谱,点下菜(JS预解析),但吃的时候还是一口一口的吃(JS逐行执行)! OK,解决下面五个问题,JS预解析就算过了~~(前提:对JS变量作用域有清晰理解) 一.JS预解析是什么? 其实就是对程序要用到的材料(变量,函数)给一个初始值,并存到一个表中(我自己虚构的),当程序运行到那一行时,就来这个表看有没有初始值,没有就

深圳尚学堂:JavaScript的常见面试题

经常说编程是一门技术专业,在找工作时面试官肯定不止看你的面试能力,还要看你的专业知识掌握,他可能会让你做一个小的编程测试,或者说考察你的语法知识掌握,今天,总结了一些关于在JavaScript中常常会被面试官问道的一些面试题. 基础 1,什么是命名空间,变量污染,变量声明提升,预编译?如何检查一段代码执行后是否声明了全局变量? 2,隐式转换的种种规则 3,关于对象,对象的属性可能有哪些特性(attribute)?什么是原型链?如何检测某一属性是在对象中还是原型链中?如何检测是否是普通对象或空对象