`
wfsheep
  • 浏览: 17399 次
文章分类
社区版块
存档分类
最新评论

javascript的一些“好玩的”特性

 
阅读更多

最近发现一些好玩的JAVASCRIPT特性,其实也是es3的一些细小的东西,写出来给自己记录一下。
首先是Dmitry Soshnikov大牛的10道测试题,看了之后,发现自己还真有好多玩意不知道,还需要继续努力啊。
1. What’s the result of:
typeof typeof(null)
“undefined”

SyntaxError

“string”

“object”

TypeError

2. Are the algorithms of the following checks completely equvalent?
typeof foo == 'undefined'
and
typeof foo === 'undefined'
Yes

No

3. What’s the result of:
100['toString']['length']
100

3

1

8

0

SyntaxError

4. What’s the result of:
var a = (1,5 - 1) * 2
0.999999999

1

0.5

8

-0.5

4

5. What’s the result of:
var x = 10;
var foo = {
x: 20,
bar: function () {
var x = 30;
return this.x;
}
};

console.log(
foo.bar(),
(foo.bar)(),
(foo.bar = foo.bar)(),
(foo.bar, foo.bar)()
);
20, 20, 20, 20

20, 20, 10, 10

20, 20, 20, 10

20, 20, 10, 30

20, 10, 10, 10

20, 10, 30, SyntaxError

6. What’s the result of:
function f(x, y) {
x = 10;
console.log(
arguments[0],
arguments[1]
);
}

f();
10, null

10, undefined

undefined, undefined

10, NaN

10, 10

7. What’s the result of:
var
b = 10,
c = (
20,
function (x) { return x + 100},
function () { return arguments[0]}
);

a = b + c
({x: 10}).x
30, 10

20

10

30, 110

NaN, 10

8. What’s the result of:
1..z
SyntaxError

New Range object (equivalent to new Range(1, ‘z’)) including all numbers and letters

undefined

Error of Range object (incompatible types for range: number and string)

ReferenceError “z” is not defined

9. What’s the result of:
({
x: 10,
foo: function () {
function bar() {
console.log(x);
console.log(y);
console.log(this.x);
}
with (this) {
var x = 20;
var y = 30;
bar.call(this);
}
}
}).foo();
20, 30, 20

10, 30, 10

20, undefined, 10

undefined, 30, 20

SyntaxError

20, 30, 10

10. What’s the result of:
foreach (k in {a: 10, b: 20})
{
// ...
}
Always SyntaxError

ReferenceError or possibly no error

Always ReferenceError

Iteration over the object values

Iteration over the object keys

TypeError or possibly SyntaxError

相信不是大牛的话,即使看到正确答案也有很多不解,毕竟,人家大神说了,
if some questions seem to be hard, you can use console (that’s not a cheating, because some questions are hard).
详细解答,可以参看大神给出的解释页面
http://joseanpg.net/jslab/quiz/soshnikov/answers.html

其次是正美给的两个试题页面,这个之前倒是看过,而且难度较以上10题较为简单,具体可以参看司徒正美同学的页面
http://www.cnblogs.com/rubylouvre/archive/2010/01/28/1658434.html
http://www.cnblogs.com/rubylouvre/archive/2010/02/13/1667565.html

分享到:
评论

相关推荐

    js+canvas好玩的飞机大战手机游戏.zip

    本项目“js+canvas好玩的飞机大战手机游戏”就是一个典型的利用HTML5技术构建的手机游戏,它巧妙地融合了JavaScript、Canvas等技术,为玩家带来流畅且富有挑战性的游戏体验。下面我们将深入探讨这些技术在游戏中的...

    好玩的java 程序

    ### 好玩的Java程序:理解JavaScript动画脚本 #### 概述 本文将详细介绍一个有趣的JavaScript程序,该程序可以在浏览器地址栏直接运行,并产生动态的视觉效果。通过解析这个脚本,我们将深入理解其背后的原理和...

    一个好玩的小软件

    标签“好玩”强化了这个软件的主要特性,即它的用户体验应该是愉快和有趣的,可能包含了一些创新或者独特的设计,以吸引用户的注意力并提供乐趣。 然而,由于提供的信息有限,无法详细阐述这款软件的具体功能和技术...

    80个超好玩的html5网页小游戏源码

    1. Canvas绘图:HTML5的Canvas元素是一个可编程的2D图形画布,允许开发者通过JavaScript进行动态图形绘制。许多HTML5小游戏都依赖Canvas来创建游戏场景、角色动画以及碰撞检测。通过研究源码,你可以学习如何使用...

    相当好玩的右键弹出菜单.rar

    通过JavaScript,我们可以实现动态加载、下拉子菜单、悬停效果等高级特性,为用户带来更加流畅的导航体验。 **index.htm**: 这是HTML文件,通常作为网站的主页。在这个项目中,index.htm可能包含了一个基本的网页...

    JavaScript

    JavaScript示例则提供了学习和参考的模型,帮助初学者理解和掌握语言特性。例如,你可以找到关于事件处理、定时器、数组操作、对象创建、函数定义、闭包、原型继承等多方面的示例代码。这些示例通常带有注释,解释了...

    25个好玩的JavaScript小游戏分享

    JavaScript小游戏的流行,既体现了其语言特性的灵活性,也展示了开发者们的创新精神。 首先,我们来探讨一下JavaScript在网页交互中的作用。JavaScript能够实时更新页面内容,无需用户刷新页面,这在创建动态、交互...

    超好玩的html5微信赛车小游戏源码

    此外,它还可能包含了一些优化技巧,如帧率控制和事件委托,以确保游戏在各种设备上都能流畅运行。 再者,游戏可能利用了Web Storage(包括localStorage和sessionStorage)来保存用户数据,比如得分记录或者游戏...

    好玩的小程序 用hta做的(非原创)

    【标题】:“好玩的小程序 用hta做的(非原创)” 【描述】:“好玩的小程序 用hta做的 好玩的小程序 用hta做的” 这个标题和描述提及的“好玩的小程序 用hta做的”是指使用HTML应用程序(HTML Application,简称...

    好玩的JS特效

    "好玩的JS特效"通常指的是利用JavaScript实现的各种视觉效果,如动画、交互式元素、游戏等,这些特效能够提升网站的吸引力和用户体验。 在描述中提到了"兼容性:火狐、IE8+9+10等主流浏览器皆可",这表明这些JS特效...

    好玩的3D折叠效果的菜单.rar

    例如,使用requestAnimationFrame进行动画处理,或者利用CSS3硬件加速特性。 6. **用户体验(UX)设计**: 3D折叠菜单不仅要有视觉冲击力,还要易于理解和使用。设计时要考虑用户的直觉,确保操作流程清晰,反馈及时,...

    一个简单好玩的H5表白网页

    本项目“一个简单好玩的H5表白网页”就是这样一个利用H5、JavaScript(Js)和CSS(层叠样式表)技术打造的创意作品,旨在通过个性化的表达方式,为用户带来温馨浪漫的表白体验。 首先,我们来了解H5的基础知识。...

    html5实现好玩的飞机大战小游戏源码.zip

    这个"html5实现好玩的飞机大战小游戏源码.zip"压缩包包含了一款基于HTML5构建的飞机大战游戏的完整源代码,为学习和理解HTML5游戏开发提供了实践平台。 在HTML5中,游戏开发主要依赖于以下几个核心特性: 1. **...

    HTML5+SVG实现好玩的打击乐器代码.zip

    在本压缩包"HTML5+SVG实现好玩的打击乐器代码.zip"中,包含了一套利用HTML5和SVG技术实现的打击乐器效果的代码。 首先,我们要理解HTML5的核心特性。它引入了新的标签如`<canvas>`(画布)用于绘制图形,`<audio>`...

    BroadCast3D原生JS实现好玩的3D轮播图旋转特效

    【 BroadCast3D原生JS实现好玩的3D轮播图旋转特效】 在现代网页设计中,为了吸引用户的注意力和提升用户体验,3D特效被广泛应用,尤其是3D轮播图旋转效果。`BroadCast3D` 是一个用原生JavaScript编写的库,专门用于...

    HTML5+SVG实现好玩的打击乐器代码

    本项目中,"HTML5+SVG实现好玩的打击乐器代码"利用这两种技术,构建了一个模拟打击乐器的应用,用户可以通过点击不同的乐器图形来触发对应的音效,增加了网页的趣味性和交互性。 首先,HTML5是第五代超文本标记语言...

    Date Object in Javascript.zip

    开发者还可以结合其他JavaScript特性,如定时器(setTimeout, setInterval)和事件监听,来实现复杂的时序逻辑。 总之,JavaScript的Date对象是处理日期和时间的强大工具,它提供了丰富的功能,帮助开发者轻松地...

    经典的js代码 绝对经典

    在这个名为“经典的js代码 绝对经典”的压缩包中,我们很可能会找到一些体现JavaScript核心特性的代码示例。下面将详细探讨JavaScript的关键知识点。 1. **变量声明**: JavaScript 使用`var`、`let`和`const`进行...

    MottoJS一个让你的座右铭更好玩的JS插件

    在本文中,我们将深入探讨MottoJS的核心特点、如何使用它以及一些可能的应用场景。 首先,让我们了解一下JavaScript。JavaScript是一种广泛应用于网页和网络应用的编程语言,它负责为网页添加交互性和动态功能。...

    html5实现好玩的手机端飞机大战小游戏源码.zip

    在这个“html5实现好玩的手机端飞机大战小游戏源码.zip”压缩包中,包含的资源很可能是用来创建一个基于HTML5的移动设备上的飞机大战游戏。这种游戏在过去的几年里非常流行,因为它可以轻松地在各种智能手机和平板...

Global site tag (gtag.js) - Google Analytics