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. ARM串口控制终端命令

    配置开发板eth0网络: # ifconfig eth0 10.70.12.168

  2. docker配置与实践#可以好好看看

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 L ...

  3. python3 练习题100例 (二十九)猴子吃桃问题

    题目内容: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第n天(<1<n< ...

  4. 让CPU使用率正弦变化

    网络上流传一个面试题,说如何编程让CPU的使用率按照正弦方式变化 代码如下(运行环境Linux): #include <stdio.h> #include <stdlib.h> ...

  5. C# 实现窗口无边框,可拖动效果

    #region 无边框拖动效果 [DllImport("user32.dll")]//拖动无窗体的控件 public static extern bool ReleaseCaptu ...

  6. 6-C++远征之封装篇[上]-学习笔记

    C++远征之封装篇(上) 课程简介 类(抽象概念),对象(真实具体) 配角: 数据成员和成员函数(构成了精彩而完整的类) 构造函数 & 析构函数(描述了对象的生生死死) 对象复制和对象赋值 ( ...

  7. dns文件

    1.dns简介 dns为域名解析系统,当本地浏览器输入域名访问网站时,如果本地host中没有配置域名与IP的对应关系,那么域名信息将会被发送到dns服务器上,由dns服务器将域名解析为IP(过程较为复 ...

  8. How to enable download EXE files from the Sharepoint website

          As we all know,many applications have forbidden to upload and download exe files.Because the e ...

  9. 「Haskell 学习」一 环境与大致了解

    感谢<Real World Haskell>在网上的免费发布,可以白嫖学Haskell这个久闻大名的函数式编程语言了. 本文运行于openSUSE Tumbleweed下,运行相关命令时留 ...

  10. 名片管理系统demo

    # 定义一个列表,用来储存名片 def cardInfors(): # 打印功能提示 print('欢迎使用名片管理系统v6.6.6') print('1:添加一个名片') print('2:删除一个 ...