JavaScript是如今最受欢迎的编程语言之一,但受欢迎同时就是该语言自身的各种特性带来的副作用,无论该语言多美妙,每天还是有成千上万的程序员弄出一堆bug。先不要嘲笑别人,或许你也是其中之一。
给你一个例子,下面是几个简短的完全有效的JS片段(你可以在你的控制台上试验一下):
typeof NaN === 'number' // true Infinity === 1/0 // true0.1 + 0.2 === 0.3 // false,前面加括号也一样
"3" + 1 // '31' "3" - 1 // 2
你还相信自己的JavaScript吗?
1、JS最小的值
Number.MIN_VALUE > 0; //true
2、字符串连接
("foo" + + "bar") === "fooNaN" //true "why I am " + typeof + "" // why I am number
JShtml" target="_blank">解析成“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在同一行
6、奇怪的数字
012 == 12 // false '012' == 12 // true "3" + 1 // '31' "3" - 1 // 2 0.1 + 0.2 == 0.3 // false 0.1 + 0.7 == 0.8 // false 0.2 + 0.7 == 0.9 // false 9999999999999999 // 10000000000000000 9999999999999999-1 //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 [] == ![] // truewindow.window == window // true window.window === window // false,有些浏览器是true window == document // true,有些浏览器是false
("0" && {}) == 0 // false (0 && {}) == 0 // true 0 == "0" // true [] == 0 // true
本文向大家介绍JavaScript易错知识点整理,包括了JavaScript易错知识点整理的使用技巧和注意事项,需要的朋友参考一下 前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。 JavaScript知识点 1.变量作用域 上方
主要内容:1) 源文件(Source File),2) 工程/项目(Project),3) 工程类型/项目类型,4) 链接(Link)上节我们介绍了编译器和 IDE 的概念,大家肯定希望赶紧实践一下,用 IDE 真正地运行一段C语言代码来看看效果,这样能够更快地获得成就感。 但是,使用 IDE 的过程中会涉及到一些与编程有关的概念,这些概念如果不提前了解,即使能够运行出程序来,也是雾里看花,知其然不知其所以然。本节的目标就是让大家对这些概念有一个简单的了解。 1) 源文件(Source File
本文向大家介绍有效提高JavaScript执行效率的几点知识,包括了有效提高JavaScript执行效率的几点知识的使用技巧和注意事项,需要的朋友参考一下 为了提供新鲜、别致的用户体验,很多网站都会使用 JavaScript 来改善设计、验证表单、检查浏览器,以及Ajax请求,cookie操作等等,实现无刷新动态效果 。但是,要将大量内容在浏览器呈现,如果处理不好,网站性能将会急剧下降。所以我们有
本文向大家介绍nodejs中的异步编程知识点详解,包括了nodejs中的异步编程知识点详解的使用技巧和注意事项,需要的朋友参考一下 简介 因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。但是对于最开始在浏览器中运行的javascript来说,单线程的同步执行环境显然无法满足页面点击,鼠标移动这些响应用户的功能。于是浏览器实现了一组API,可以让javascri
本文向大家介绍容易造成JavaScript内存泄露几个方面,包括了容易造成JavaScript内存泄露几个方面的使用技巧和注意事项,需要的朋友参考一下 发表于谷歌WebPerf(伦敦WebPerf集团),2014年8月26日。 高效的JavaScript Web应用必须流畅,快速。与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载。而你只
本文向大家介绍写出几种IE6 bug的解决方法相关面试题,主要包含被问及写出几种IE6 bug的解决方法时的应答技巧和注意事项,需要的朋友参考一下 1)png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.也可以引用一段脚本处理. 2)IE6双倍边距bug:在该元素中加入display:inline 或 display:block 3)像素问题 使用多个float和注释引起的 使用d