`
gonnsai
  • 浏览: 8578 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一些非常蛋疼的JavaScript试题

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

01
(function () {  
    return typeof arguments;  
})();  

A. "object"
B. "array"
C. "arguments"
D. "undefined"


答案:A

02
var f = function g() {
        return 23;
    };
typeof g();

A. "number"
B. "undefined"
C. "function"
D. Error

答案:D

03
(function (x) {
    delete x;
    return x;
})(1);

A. 1
B. null
C. undefined
D. Error

答案:A

04
var y = 1,
    x = y = typeof x;
x;

A. 1
B. "number"
C. undefined
D. "undefined" 

答案: D

05
(function f(f) {
    return typeof f();
})(function () {
    return 1;
});

A. "number"
B. "undefined"
C. "function"
D. Error


答案:A

更多蛋疼的试题,可以看看这里 非常蛋疼的JavaScript试题
分享到:
评论
39 楼 jordan_micle 2011-06-30  
soni 写道
这么写容易被打死


确实蛋疼。。。离开JS,可以延长你的寿命。
38 楼 xingqiliudehuanghun 2011-06-30  
他想考察的是1.toString()会报错,但1之后加一个空格就可以了,所以最后的-1_.toString()//_指空格就可以了
37 楼 int08h 2011-06-29  
xingqiliudehuanghun 写道
昨天去面试也遇到了一个,请输出下面程序的执行结果:
1.toString();
(1).toString();
-1 .toString();

1.toString()过不了语法,-1 .toString()是-(1 .toString())
36 楼 xingqiliudehuanghun 2011-06-29  
昨天去面试也遇到了一个,请输出下面程序的执行结果:
1.toString();
(1).toString();
-1 .toString();
35 楼 haiyupeter 2011-06-27  
这个明显是在测试javascript的typeof,没啥特别的。。
34 楼 int08h 2011-06-24  
super_monkey 写道
int08h 写道
super_monkey 写道
不对呀,呵呵.主要是后三个log 

我就想问一个问题,你只想考eval的作用域,还是想顺便考考window.name这货?


呵呵,其实就是考考eval在不同的执行环境中变量的作用域问题,name: 会放在全局(window),age 和 password会放在他们执行的function范围.这样好处就很明显了,不污染全局。所以后面的3个log应为 number undefined undefined

嗯,不过如果是浏览器环境下的话,window自带name这属性且有特殊处理,name永远是string……
33 楼 super_monkey 2011-06-24  
int08h 写道
super_monkey 写道
不对呀,呵呵.主要是后三个log 

我就想问一个问题,你只想考eval的作用域,还是想顺便考考window.name这货?


呵呵,其实就是考考eval在不同的执行环境中变量的作用域问题,name: 会放在全局(window),age 和 password会放在他们执行的function范围.这样好处就很明显了,不污染全局。所以后面的3个log应为 number undefined undefined
32 楼 int08h 2011-06-24  
super_monkey 写道
不对呀,呵呵.主要是后三个log 

我就想问一个问题,你只想考eval的作用域,还是想顺便考考window.name这货?
31 楼 super_monkey 2011-06-24  
不对呀,呵呵.主要是后三个log 
30 楼 zhanghh321 2011-06-24  
super_monkey 写道
int08h 写道
1、arguments不是object还能是啥,typeof只能返回number / string / boolean / object / function,明猜也是object……

2、函数表达式中的函数名仅在该函数的执行环境内有效,所以外面g不存在,直接访问不存在的全局属性是ReferenceError

3、var定义的(除非是在eval中用var定义)、参数、某些内置对象和宿主对象具有{DontDelete}特性,必然不能删

4、不知道在说啥,有啥区别吗?

5、就这一题有点意思,关系到进入函数时的参数顺序,依次是函数本身->参数->var声明,因此参数的f覆盖函数自己的函数名f,f()就是1,typeof 1就是number

对于技术比较泛的工程师来说,可能会蛋疼,但是对于专职的前端工程师,这些是基础……

基本功很扎实嘛。嘿嘿 我也出一题 大家共同提高
console.log(typeof name);  
console.log(typeof age);  
console.log(typeof password);  
var jsstring = "var name = 1; console.log(name);";
eval(jsstring);  
jsstring = "var age = 2; console.log(age);";
new Function(jsstring)();  
jsstring = "var password = 3; console.log(password);";
(function () {
eval(jsstring);
}());  
console.log(typeof name);  
console.log(typeof age);  
console.log(typeof password); 



应该是undefined
undefined
undefined
number
number
number

对否啊
29 楼 taoge2121 2011-06-24  
第二个,IE运行是number,FF运行是g is not defined

var f = function g() {  
        return 23;  
    };  
alert(typeof g());
为什么啊????
28 楼 yf7631497 2011-06-24  
yf7631497 写道
int08h 写道
clue 写道
int08h 写道

这算啥,Firefox有更恶心的
if (0) {
    function abc() {
        
    }
}
abc();

我发的那段代码,在IE下第一个alert弹出的是false 

IE的具名函数表达式有2次Evaluate过程,这个在2000年前讨论得比较激烈,现在大家忘得差不多了……



威武



有没有这个板块?
浏览器 N种罪
27 楼 yf7631497 2011-06-24  
int08h 写道
clue 写道
int08h 写道

这算啥,Firefox有更恶心的
if (0) {
    function abc() {
        
    }
}
abc();

我发的那段代码,在IE下第一个alert弹出的是false 

IE的具名函数表达式有2次Evaluate过程,这个在2000年前讨论得比较激烈,现在大家忘得差不多了……



威武
26 楼 咖啡豆子 2011-06-23  
这些题都没什么意义,这么写严重恶化了代码质量
25 楼 gaoshouzhen1987 2011-06-23  
写这样代码的人,应该开除掉
24 楼 int08h 2011-06-23  
abraham_xi 写道
int08h 写道
1、arguments不是object还能是啥,typeof只能返回number / string / boolean / object / function,明猜也是object……

2、函数表达式中的函数名仅在该函数的执行环境内有效,所以外面g不存在,直接访问不存在的全局属性是ReferenceError

3、var定义的(除非是在eval中用var定义)、参数、某些内置对象和宿主对象具有{DontDelete}特性,必然不能删

4、不知道在说啥,有啥区别吗?

5、就这一题有点意思,关系到进入函数时的参数顺序,依次是函数本身->参数->var声明,因此参数的f覆盖函数自己的函数名f,f()就是1,typeof 1就是number

对于技术比较泛的工程师来说,可能会蛋疼,但是对于专职的前端工程师,这些是基础……


对于第二题IE下面能运行成功,上面对于第二题的解释还正确吗??


IE那是他的实现错误,说严重点就是IE的BUG……因为根据ECMA262的标准而言,我的解释是正确的,当然如果考虑各浏览器下的表现行为,我的答案需要有一些改动……
23 楼 abraham_xi 2011-06-23  
int08h 写道
1、arguments不是object还能是啥,typeof只能返回number / string / boolean / object / function,明猜也是object……

2、函数表达式中的函数名仅在该函数的执行环境内有效,所以外面g不存在,直接访问不存在的全局属性是ReferenceError

3、var定义的(除非是在eval中用var定义)、参数、某些内置对象和宿主对象具有{DontDelete}特性,必然不能删

4、不知道在说啥,有啥区别吗?

5、就这一题有点意思,关系到进入函数时的参数顺序,依次是函数本身->参数->var声明,因此参数的f覆盖函数自己的函数名f,f()就是1,typeof 1就是number

对于技术比较泛的工程师来说,可能会蛋疼,但是对于专职的前端工程师,这些是基础……


对于第二题IE下面能运行成功,上面对于第二题的解释还正确吗??
22 楼 shuaiji 2011-06-23  
明明是抄错了啦吧,我看上面有个 3 和 4 是不一样的
21 楼 int08h 2011-06-23  
clue 写道
int08h 写道

这算啥,Firefox有更恶心的
if (0) {
    function abc() {
        
    }
}
abc();

我发的那段代码,在IE下第一个alert弹出的是false 

IE的具名函数表达式有2次Evaluate过程,这个在2000年前讨论得比较激烈,现在大家忘得差不多了……
20 楼 clue 2011-06-23  
int08h 写道

这算啥,Firefox有更恶心的
if (0) {
    function abc() {
        
    }
}
abc();

我发的那段代码,在IE下第一个alert弹出的是false 

相关推荐

    javascript试题(附答案)

    这份"javascript试题(附答案)"是为初学者设计的,旨在帮助他们更好地理解和掌握JavaScript的基础知识。 一、变量与数据类型 在JavaScript中,变量不需要预定义类型,可以动态改变。`var`关键字用于声明变量,例如`...

    javascript 试题及答案

    JavaScript试题及答案解读 本文将对JavaScript试题及答案进行解读,涵盖了JavaScript基础知识、语法格式、变量声明、运算符、_comparison operators、逻辑运算符、赋值语句等多方面的知识点。 JavaScript基础知识 ...

    浅析网络程序员考试中的JavaScript试题.pdf

    另一类是考查应用JavaScript脚本语言来实现一些特殊效果,如实现状态栏上的跑马灯效果、实现滚动广告条的效果等。 二、试题分析 2002年网络程序员下午卷试题四主要考查了定义对象构造函数、定义对象方法、以及建立...

    javascript试题(Javascriptquestions)PDF

    但我可以根据给出的描述和标签,提供一些与JavaScript相关的常见知识点,这些知识点可能在一份JavaScript试题(Javascriptquestions)PDF中出现。 JavaScript是一种高级的、解释执行的编程语言。它让网页具有交互性...

    javascript试题及答案.docx

    JavaScript 试题及答案 本文档提供了 JavaScript 相关试题及答案,涵盖了 JavaScript 的基础知识点,包括函数、对象、事件处理程序、文本框、按钮、单选框、下拉框、表单验证、JavaScript 中的时间和日期等知识点。...

    JavaScript 进阶问题列表,包含完整答案

    《JavaScript进阶问题列表》是一份全面覆盖JavaScript高级知识点的问题集合,旨在帮助开发者深入理解JavaScript语言的各个方面,并掌握进阶技巧。每个问题都提供了详细的答案和解析,涵盖了JavaScript的高级特性、...

    一些常用的JavaScript代码

    一些常用的JavaScript代码,全是我工作中的总结

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript...本书内容由浅入深,非常适合想要快速学习JavaScript编程或者深入钻研JavaScript的读者参考。

    JavaScript标准参考教程

    《JavaScript标准参考教程》是一本全面介绍JavaScript编程语言的书籍,其内容涵盖了从基础语法、数据类型、函数到高级特性如数组操作、错误处理、编程风格等各个方面的知识。阮一峰作为作者,将多年的经验和网络资料...

    非常实用的JavaScript全套帮助文档

    在“常用的源码收集”这一标签下,我们可以期待这个压缩包中可能包含了一些常见的JavaScript代码片段和库,比如用于AJAX请求的jQuery、用于动画效果的GreenSock或者用于前端框架的React、Vue等。这些源码不仅可以...

    JavaScript语言精粹完整版

    《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...

    Web程序设计基础_Html+JavaScript部分_试题和答案

    本资源包“Web程序设计基础_Html+JavaScript部分_试题和答案”旨在帮助学习者深入理解这两种语言的基本概念、语法以及在实际开发中的应用。 HTML,全称为超文本标记语言,是网页内容的主要载体。它通过一系列标签来...

    JavaScript文档

    最后,“JavaScript对象与数组参考大全 .chm”专门关注JavaScript中的对象和数组,这是JavaScript编程中非常关键的部分。JavaScript是一种基于对象的语言,其核心就是对象和原型链。这个文档可能会详细讲解对象的...

    《你不知道的JavaScript》.pdf

    JavaScript作为一种动态类型语言,其变量的类型在运行时才确定,这种灵活性有时也会带来一些意料之外的结果。书中对这些情况进行了阐释,比如在JavaScript中使用加减乘除等运算符时,不同类型的数据是如何相互转换的...

    javascript模拟试题.doc

    以下是对JavaScript模拟试题中涉及的知识点的详细解释: 1. JavaScript代码通常放置在HTML的`<script>`标签内,正确选项是A。 2. 输出"Hello World"的正确JavaScript语法是使用`document.write("Hello World")`,...

    VS2015安装证书,JavaScript_ProjectSystem.msi,JavaScript_LanguageService.msi

    在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...

    JavaScript全栈教程 (廖雪峰) 完整版PDF

    JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数 基于HTML5的手机App,交互逻辑都是由...从基础入门在讲到node使用实践,感兴趣的可以下载学习,离线文件非常方面。

    JavaScript面试试题集合.rar

    目前,JavaScript已经成为最流行的编程语言之一,被广泛应用于前端开发、后端开发、移动应用开发以及一系列其他领域。 JavaScript的快速发展得益于它的灵活性、易学性和强大的生态系统。它不仅可以通过浏览器执行,...

    JavaScript学习指南 高清 PDF

    下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句、循环...

    .NET的Javascript运行库Javascript.Net

    这个项目对于那些需要在服务器端或者桌面应用中利用JavaScript的强大功能,而又不希望引入完整的浏览器环境(如ChakraCore或JScript.NET)的开发者来说,是一个非常实用的工具。 JavaScript.Net的核心功能在于提供...

Global site tag (gtag.js) - Google Analytics