发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
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 函数
1 parseInt('06'); // 6 2 parseInt('08'); // 0 注意,谷歌新版已修正 3 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在同一行
/******** ********* / 博客:http://www.cnblogs.com/roucheng/ / ******* *********/
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、让人头大的等号
1 NaN === NaN; // false 2 [] == false; // true 3 "" == false; // true 4 null == false; // false 5 [] == ![] // true 6 7 window.window == window // true 8 window.window === window // false,有些浏览器是true 9 window == document // true,有些浏览器是false 10 11 ("0" && {}) == 0 // false 12 (0 && {}) == 0 // true 13 0 == "0" // true 14 [] == 0 // true
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
屏蔽JavaScript的“网页上有错误”
屏蔽JavaScript的“网页上有错误”<script>window.onerror=hide_error_message;引用作者的一句话:"PS:我知道,作为网页设计人员,理应作出无误的网页,但是有时候可能是浏览者自身机子上的...
三段诡异的JavaScript代码,结果出乎意料
三段诡异的JavaScript代码,结果出乎意料“脚本之家”,与百万开发者在一起。我知道很多人认为JavaScript是一门愚蠢的编程语言,bug很多...
删除时、提交时用window.confirm()确认
删除时、提交时用window.confirm()确认在<form>加入onsubmit="javascript:return formcheck()"在formcheck()中做window.confirm()根据window.confirm的返回参数让formcheck()返回false...
程序员10种编程语言写Hello World,你会哪几个?
程序员10种编程语言写Hello World,你会哪几个?Hello World是我们进入编程的第一句运行的语言了,至少对于我是这样的,今天小编我收集...
给定时器settimeout、setInterval调用传递参数 (javascript)
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在。这时,如果企图使用以下语句来使hello函数延迟3秒执行是不可行的:window.setTimeout(hello(userName...
html页面自动跳转方法
html页面自动跳转方法。http-equiv=“refresh” 是刷新页面,5秒后执行刷新操作,url是跳转的目的页面地址。<script type="text/javascript">window.location.href = ''hello....
js实现表单form提交前进行确认提示
js实现表单form提交前进行确认提示。html中的表单提交弹出确认是非常的简单的只需要使用js中的window.confirm就可以实现了,具体的方法下面我们一起来看看。<script type="text/javascript&quo...
常用的 Javascript 操作汇总 (二)
ASP.NET中使用AJAX时如何弹出对话框
ASP.NET中使用AJAX时如何弹出对话框[转]以上代码的效果就是当用户点击Button1按钮,将会弹出一个对话框。// 在此处放置用户代码以初始化页面 this.Button1.Attributes.Add("onclick",&q...
微信扫码,在手机上查看选中内容