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

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

答案:B

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

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

  1. 一些奇怪的Javascript用法

    阅读AngularJS时,看到一些奇怪的Javascript用法.1.(function(){        a.work=function(){}   })(a)   声明一个匿名函数并执行 2. ...

  2. JAVASCRIPT试题及答案

    1.用jQuery编程实现获取选中复选框值的函数abc. <body> <input type="checkbox" name="aa" va ...

  3. 从零构建JavaScript的对象系统

    一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...

  4. JavaScript 调试常见报错以及修复方法

    (看到一篇调试JS很有用的文章,收藏一下) JavaScript 调试是一场噩梦:首先给出的错误非常难以理解,其次给出的行号不总有帮助.有个查找错误含义,及修复措施的列表,是不是很有用? 以下是奇怪的 ...

  5. 一个意想不到的Javascript内存泄漏

    原文:http://point.davidglasser.net/2013/06/27/surprising-javascript-memory-leak.html 本周我在Meter的同事追踪到了一 ...

  6. Javascript内存泄漏

    Javascript内存泄漏 原文:http://point.davidglasser.net/2013/06/27/surprising-javascript-memory-leak.html 本周 ...

  7. 关于JavaScript中的==与!的转换问题

    最近遇到了一道很有趣的JavaScript试题,感觉很有趣.记录一下免得以后面试遇到 题目是: console.log([]==![],{}==!{},[]==!{},{}==![]) 这道题考察的主 ...

  8. Ajax 的优势和不足

    Ajax 的优势 1. 不需要插件支持 Ajax 不需要任何浏览器插件,就可以被绝大多数主流浏览器所支持,用户只需要允许 JavaScript 在浏览器上执行即可. 2. 优秀的用户体验 这是 Aja ...

  9. 从 bootup.js 学习加载脚本等资源

    本文内容 如何使用 示例 参考资料 本文的目的在于,通过 bootup.js 的源代码,认识如何从客户端加载服务器的文件,特别是 JavaScript 文件,注入到页面,并存储在本地缓存,以扩展对 J ...

随机推荐

  1. ctf题目writeup(1)

    2019/1/28 题目来源:爱春秋 https://www.ichunqiu.com/battalion?t=1 1. 该文件是一个音频文件: 首先打开听了一下,有短促的长的....刚开始以为是摩斯 ...

  2. C# 隐藏窗口标题栏、隐藏任务栏图标

    //没有标题 this.FormBorderStyle = FormBorderStyle.None; //任务栏不显示 this.ShowInTaskbar = false;

  3. linux实验-基本指令1

    1.root帐号登录,查看/tmp目录,如果/tmp目录下没有子目录myshare,则建立该目录. 2.创建帐号testuser. 3.把myshare目录及其目录下的所有文件和子目录的拥有者该为te ...

  4. python2.7练习小例子(十二)

        12):题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数" ...

  5. spfa专题

    SPFA专题 1通往奥格瑞玛的道路 在艾泽拉斯,有n个城市.编号为1,2,3,...,n. 城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量. 每 ...

  6. 封装一个List集合和datatable相互转换的工具类(可对指定列进行重命名并且指定输出列)

    /// <summary> /// List转换为DataTable对象 /// </summary> public class ListTranTableModel { // ...

  7. nginx+tomcat 反向代理 负载均衡配置

    1.nginx的安装和配置见:http://www.cnblogs.com/ll409546297/p/6795362.html 2.tomcat部署项目到对应的服务器上面并启动,不详解 3.在ngi ...

  8. sed 集合(项目中的笔记)

    奇数行和偶数行合并为一行: Like: Sequence number: 5398Sequence name: Glyma.16G123500.1Sequence number: 5399Sequen ...

  9. LB

    LB(LBaaS)及Load Balance as a Service是 Neutron 提供的一项高级网络服务. LBaaS 允许租户在自己的网络中创建和管理 load balancer,load ...

  10. GraphSAGE 代码解析(一) - unsupervised_train.py

    原创文章-转载请注明出处哦.其他部分内容参见以下链接- GraphSAGE 代码解析(二) - layers.py GraphSAGE 代码解析(三) - aggregators.py GraphSA ...