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

你真的了解JavaScript?

 
阅读更多

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吗?

    Maintainable.JavaScript

    当你写代码的时候,你有很多的...可维护的JavaScript不仅推荐一套准则,它检查使用指南和推荐的其他行业,所以你了解什么是常见的JavaScript运行良好的项目。现在保存这本书的副本。这是唯一的资源,只关注JavaScript约定

    JavaScript-关于JavaScript的学习了解

    JavaScript

    深入了解JavaScript中的浅拷贝和深拷贝.pdf

    深入了解JavaScript中的浅拷贝和深拷贝

    JavaScript基础知识

    了解JavaScript的作用及组成 掌握JavaScript的基本结构 掌握JavaScript在页面中使用的三种形式 掌握JavaScript的核心语法 会使用工具进行代码调试 3.什么是JavaScript? 是一种基于对象和事件驱动的、并具有...

    【JavaScript源代码】一文带你了解JavaScript垃圾回收机制.docx

    一文带你了解JavaScript垃圾回收机制  目录 1. 概述 2. 内存管理 3. 垃圾回收 4. GC算法介绍 5. 引用计数算法 1. 引用计数优缺点 6. 标记清除算法 1. 标记清除算法优缺点 7. 标记整理算法 8. 执行时机 9. V8引擎 1...

    JavaScript语言参考手册

    最后,这本书提供了你需要用于创建一个完整的 JavaScript 应用程序的额外信息。 JavaScript 参考 (本书) 提供了整个 JavaScript 语言,包括客户端和服务器端 JavaScript 的参考材料。 DevEdge 库的 JavaScript ...

    JavaScript&jQuery;交互式Web前端开发

    你是一名JavaScript新手?或是您曾经向自己的Web页面上添加过一些脚本,但想以一种更好的方式来实现它们?本书非常适合您。《JavaScript&jQuery;交互式Web前端开发》不仅向您展示如何阅读和编写JavaScript代码,同时...

    JAVASCRIPT教案及案例

    JAVASCRIPT教案及案例,帮助你了解JAVASCRIPT

    JavaScript宝典(第7版)

    ● 深入了解终止器、生成器和迭代器 ● 应用最新的JavaScript异常处理和自定义对象技术 ● 利用DOM的强大功能 ● 使用Ajax、E4X/XML和JSON推动Web 2.0应用 ● 执行数据输入验证和提高安全性 配书光盘 配书光盘的精彩...

    高性能JavaScript 编程pdf电子书(中英文对译)

    如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...

    你并不了解 JavaScript(YDKJS)第二版:入门.epub

    你并不了解 JavaScript(YDKJS)第二版:入门

    高性能JavaScript编程(中英文)

    如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...

    高性能JavaScript

    如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。本书揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的...

    重新认识JavaScript

    经典的JavaScript文章,如文章所言:“为什么要重新认识JavaScript?因为JavaScript是世界上最被误解的语言。Javascript很多时候被嘲笑为玩具,但是,在它欺骗性的简单易学的面具下面隐藏着强大的语言特性。2005年...

    高性能JavaScript 高清完整.pdf版下载

    如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的...

    轻轻松松学用javascript编程(PDF)

    配图列表 列表 1 说明 1.1 主要的内容 1.2 学习目标 2 了解JavaScript 浏览器上的程序语言 2.1 JavaScript 操作对象的简单介绍-- 属性和方法 2.2 JavaScript 代码的加入 2.2.1 加入...

    JavaScript宝典(第7版)( (美)Danny Goodman) 高清中文扫描版.pdf

    《javascript宝典(第7版)》内容简介:...深入了解终止器、生成器和迭代器 应用最新的javascript异常处理和自定义对象技术 利用dom的强大功能 使用ajax、e4x/xml利json推动web2.0应用 执行数据输入验证和提高安全性

    《JavaScript语言精髓与编程实践》精选版

    作为纯语言学范畴的讨论,读者在本摘引中不需要过多地了解JavaScript,也不必深究某种语言的细节,作参考文论来读,便是不错。本文主要有“命令式语言”、“函数式语言”和“动态语言”三个部分,均精减自...

Global site tag (gtag.js) - Google Analytics