JavaScript是如今最受欢迎的编程语言之一,但受欢迎同时就是该语言自身的各种特性带来的副作用,无论该语言多美妙,每天还是有成千上万的程序员弄出一堆bug。先不要嘲笑别人,或许你也是其中之一。
给你一个例子,下面是几个简短的完全有效的JS片段(你可以在你的控制台上试验一下):
typeof NaN === 'number' // true
Infinity === 1/0 // true
0.1 + 0.2 === 0.3 // false,前面加括号也一样
"3" + 1 // '31'
"3" - 1 // 2
你还相信自己的JavaScript吗?
1、JS最小的值
Number.MIN_VALUE > 0; //true
Number.MIN_VALUE用于JavaScript可以表达的最小值,为5e-324,然而是JS中最接近0的一个数
2、字符串连接
("foo" + + "bar") === "fooNaN" //true
"why I am " + typeof + "" // why I am number
JS解析成“foo” + (+ “bar”), 这将会把 “bar” 转成一个数字
3、parseInt 函数
parseInt('06'); // 6
parseInt('08'); // 0 注意,谷歌新版已修正
parseInt(null, 24) === 23 // true
4、null是不是object
typeof null // object
null instanceof Object // false
5、return返回内容
function myjson()
{
return
[
2
]
}
myjson(); // undefined
return返回的内容必须和return在同一行
/******** 无情的分割线 ********* /
作者:没有开花的树
博客:blog.csdn.net/mycwq
/ ******* 无情的copy *********/
6、奇怪的数字
012 == 12 // false
'012' == 12 // true
"3" + 1 // '31'
"3" - 1 // 2
0.1 + 0.2 === 0.3 // false
9999999999999999 // 10000000000000000
111111111111111111111 // 111111111111111110000
7、诡异的参数
function hello(what) {
alert(arguments[0]); //vicky
what = "world";
return "Hello, " + arguments[0] + "!";
}
hello("vicky"); //"Hello, world!"
8、让人头大的等号
NaN === NaN; // false
[] == false; // true
"" == false; // true
null == false; // false
[] == ![] // true
window.window == window // true
window.window === window // false,有些浏览器是true
window == document // true,有些浏览器是false
("0" && {}) == 0 // false
(0 && {}) == 0 // true
0 == "0" // true
[] == 0 // true
参考
http://blog.csdn.net/mycwq/article/details/17503731
http://wtfjs.com
分享到:
相关推荐
你真的了解JavaScript吗?
当你写代码的时候,你有很多的...可维护的JavaScript不仅推荐一套准则,它检查使用指南和推荐的其他行业,所以你了解什么是常见的JavaScript运行良好的项目。现在保存这本书的副本。这是唯一的资源,只关注JavaScript约定
JavaScript
深入了解JavaScript中的浅拷贝和深拷贝
了解JavaScript的作用及组成 掌握JavaScript的基本结构 掌握JavaScript在页面中使用的三种形式 掌握JavaScript的核心语法 会使用工具进行代码调试 3.什么是JavaScript? 是一种基于对象和事件驱动的、并具有...
一文带你了解JavaScript垃圾回收机制 目录 1. 概述 2. 内存管理 3. 垃圾回收 4. GC算法介绍 5. 引用计数算法 1. 引用计数优缺点 6. 标记清除算法 1. 标记清除算法优缺点 7. 标记整理算法 8. 执行时机 9. V8引擎 1...
最后,这本书提供了你需要用于创建一个完整的 JavaScript 应用程序的额外信息。 JavaScript 参考 (本书) 提供了整个 JavaScript 语言,包括客户端和服务器端 JavaScript 的参考材料。 DevEdge 库的 JavaScript ...
你是一名JavaScript新手?或是您曾经向自己的Web页面上添加过一些脚本,但想以一种更好的方式来实现它们?本书非常适合您。《JavaScript&jQuery;交互式Web前端开发》不仅向您展示如何阅读和编写JavaScript代码,同时...
JAVASCRIPT教案及案例,帮助你了解JAVASCRIPT
● 深入了解终止器、生成器和迭代器 ● 应用最新的JavaScript异常处理和自定义对象技术 ● 利用DOM的强大功能 ● 使用Ajax、E4X/XML和JSON推动Web 2.0应用 ● 执行数据输入验证和提高安全性 配书光盘 配书光盘的精彩...
如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...
你并不了解 JavaScript(YDKJS)第二版:入门
如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...
如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。本书揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的...
经典的JavaScript文章,如文章所言:“为什么要重新认识JavaScript?因为JavaScript是世界上最被误解的语言。Javascript很多时候被嘲笑为玩具,但是,在它欺骗性的简单易学的面具下面隐藏着强大的语言特性。2005年...
如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...
配图列表 列表 1 说明 1.1 主要的内容 1.2 学习目标 2 了解JavaScript 浏览器上的程序语言 2.1 JavaScript 操作对象的简单介绍-- 属性和方法 2.2 JavaScript 代码的加入 2.2.1 加入...
《javascript宝典(第7版)》内容简介:...深入了解终止器、生成器和迭代器 应用最新的javascript异常处理和自定义对象技术 利用dom的强大功能 使用ajax、e4x/xml利json推动web2.0应用 执行数据输入验证和提高安全性
作为纯语言学范畴的讨论,读者在本摘引中不需要过多地了解JavaScript,也不必深究某种语言的细节,作参考文论来读,便是不错。本文主要有“命令式语言”、“函数式语言”和“动态语言”三个部分,均精减自...