被忽略的js细节
2024-10-16 13:06:06
今天在写一个程序,出了一点小bug,找了许久许久,终于把问题给揪了出来,真相大白那一刻感觉好蛋疼--深刻体会到了语言之间的差异。
<script type="text/javascript">
var num1 = 3;
var num2 = -3; test(num1);
test(num2);
function test(num){
if(num){
alert(num+"大于0");
}else{
alert(num+"小于0");
}
}
</script>
猜测一下,会出现什么结果呢?原以为:第一个结果是~3大于0;第二个结果是~-3小于0,但结果让人大跌眼镜,两个结果居然都是~3大于0,真的是应了那句话--你以为你以为的就是你以为的吗??
why??这也许就是语言的差异吧,在PHP中,如果变量大于0是和true等价的,但在js中却不是这样,所以才造成了这样一个错误,错误是不怎么大,但是在项目中,找半天就是找不出来,就是这么的蛋疼,一句话----细节造就成败!细节!!细节!!!
最新文章
- Codeforces Round #382(div 2)
- OAF_文件系列11_实现OAF读写Excel包JXL和POI的区别(概念)
- linux服务之maven
- Android_helloworld
- hdu2222 字典树
- hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)
- sum_series() 求一列数的指定个数的数和(5个数字的和)
- JAVA线程优化
- c# 发送邮件、附件 分类: C# 2014-12-17 16:41 201人阅读 评论(0) 收藏
- A Linear Time Majority Vote Algorithm
- USB通讯协议之深入理解
- 简单使用SimpleCursorAdapter
- chapter 13_3 table访问的元方法
- 【redis源码阅读】redis对象
- 移动端根据dpr适配
- array_walk与array_map的区别
- ZOJ2836-Number Puzzle-容斥原理
- php路由
- poj1226
- js实现环形菜单效果