`
gonnsai
  • 浏览: 8528 次
  • 性别: 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基础知识、语法格式、变量声明、运算符、_comparison operators、逻辑运算符、赋值语句等多方面的知识点。 JavaScript基础知识 ...

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

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

    javascript试题(Javascriptquestions)PDF

    javascript试题(Javascript questions) 1. The page code is as follows: The The The < script type = "text/javascript">

    javascript试题及答案.docx

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

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的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模拟试题.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的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句、循环...

    .NET的Javascript运行库Javascript.Net

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

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

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

    org.mozilla.javascript-1.7.2.jar

    1.7.2版本发布于2009年,虽然相对较旧,但仍然包含了许多关键的JavaScript语言特性,如函数、对象、数组、正则表达式等,以及一些高级特性如闭包和原型链。 使用"org.mozilla.javascript-1.7.2.jar",开发者可以...

    javascript试题集锦

    让基础学生 巩固 提炼 js技术 ,达到自己的新境界,同时可以训练自己js的知识体系

    JavaScript前端开发案例教程-源代码.rar

    对象则是一种数据结构,允许我们存储键值对,通过原型链机制,JavaScript实现了面向对象编程的一些特性。在压缩包中的案例可能涵盖了这些基本概念的实践应用。 其次,前端开发不仅限于JavaScript,还涉及到HTML和...

    JavaScript书籍(JavaScript从入门到精通(第2版).pdf+高性能JavaScript.pdf)

    这两本书籍,"JavaScript从入门到精通(第2版)" 和 "高性能JavaScript",分别涵盖了JavaScript的基础知识和优化技巧,对于想要深入理解并提升JavaScript技能的开发者来说是宝贵的学习资源。 "JavaScript从入门到精通...

    javaScript api

    这个离线的JavaScript API CHM文件是一个宝贵的开发资源,它包含了大量的函数、方法、对象和类的详细文档,对于深入理解JavaScript的工作原理、提高开发效率非常有帮助。开发者可以在没有网络连接的情况下,快速查找...

    javascript拼图游戏(试题,javascript代码)

    最后,为了提高用户体验,我们可能还需要实现一些辅助功能,比如计时器来记录完成时间,或者提供提示和重置选项。这需要用到`setInterval`和`clearInterval`来控制定时任务,以及更多的事件监听和处理。 总之,通过...

Global site tag (gtag.js) - Google Analytics