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. PHP (Yii2) 自定义业务异常类(可支持返回任意自己想要的类型数据)

    public function beforeAction($action) { return parent::beforeAction($action); } public function runA ...

  2. windows环境下安装scrapy框架报错问题--最快捷有效的解决方案

    windows在执行如下命令,安装scrapy的过程中会报错: pip install scrapy 报错分析: windows环境下,会出现如下错误: 1.提示的错误是编译环境的问题,字面意思看需要 ...

  3. ctf题目writeup(2)

    2019.1.29 题目地址: https://www.ichunqiu.com/battalion 1. 点开链接: include "flag.php";$a = @$_REQ ...

  4. Windows 10 下如何彻底关闭 Hyper-V 服务(翻外篇)

    原文:Windows 10 下如何彻底关闭 Hyper-V 服务(翻外篇) windows禁用/启用hyper-V,解决hyper-V与模拟器同时启用时造成冲突 我是这样解决的,以管理员身份运行命令提 ...

  5. 【转】让Moodle支持多个域名

    默认情况下,moodle仅能绑定一个域名.但是由于学校网络分内网和外网,总希望如果是外网访问的,用外网的域名,用内网访问的,就转到内网的ip.这样访问的速度会更快一些,也减低对防火墙的压力.尤其是当外 ...

  6. OBS源码编译开发

    本文来自网易云社区 作者:梁敏 OBS简介 OBS(Open Broadcaster Software)是免费开源的视频录制和直播软件,支持运行在windows,Mac和linux平台.官方链接 ht ...

  7. 【APUE】Chapter15 Interprocess Communication

    15.1 Introduction 这部分太多概念我不了解.只看懂了最后一段,进程间通信(IPC)内容被组织成了三个部分: (1)classical IPC : pipes, FIFOs, messa ...

  8. 使用Cydia Substrate Hook Android Java世界

    从来没接触过Android的HOOK,在看雪上找到了一篇HOOK 的文章,但是太复杂了,应该是本地环境问题,测试不成功. 后来搜到Cydia Substrate,看了几篇文章,进入官网查看了一下文档, ...

  9. CCF-NOIP-2018 提高组(复赛) 模拟试题(三)

    T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...

  10. Java IO学习--File类

    一.File类 File类具备一定的误导性,可能容易认为它指代的是文件,实际并非如此,它既能代表一个特定文件的名称,又能表示一个目录下一组文件的名称.简而言之,File类是文件或者目录路径名的抽象表示 ...