JavaScript编程中容易出BUG的几点小知识


Posted in Javascript onJanuary 31, 2015

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在同一行

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

[] == ![]      // 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
Javascript 相关文章推荐
网页设计常用的一些技巧
Dec 22 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
Oct 17 Javascript
js表头排序实现方法
Jan 16 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
Feb 22 Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
将Sublime Text 3 添加到右键中的简单方法
Dec 12 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
Sep 20 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 #Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 #Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 #Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 #Javascript
jQuery知识点整理
Jan 30 #Javascript
浅谈jquery回调函数callback的使用
Jan 30 #Javascript
jQuery修改class属性和CSS样式整理
Jan 30 #Javascript
You might like
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python实现多线程抓取妹子图
2015/08/08 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python可以用哪些数据库
2020/06/22 Python
营销总监岗位职责范本
2014/02/26 职场文书
学校献爱心活动总结
2014/07/08 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
女生抽烟检讨书
2014/10/05 职场文书
投诉书格式范本
2015/07/02 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python