作家
登录

帮助避免错误的Javascript陷阱清单

作者: 来源:www.28hudong.com 2013-03-30 02:34:31 阅读 我要评论

翻译讲究"信雅达",我就谈不上了.希望能把文章的意思不要弄错就行. 编程的陷阱(gotcha)是指计算机系统中的意想不到的文档特征而不是bug.这些陷阱使得初学者远离javascript编程.在我看来,因为所有的浏览器都能运行javascript使得它是使用最广泛的语言之一,但它也是最少人研究的.让我们从一个基础的示例开始. 1.浮点运算 这可能是挫败一些对javascript不熟悉并准备执行一些数学运算的人的主要原因. <script> alert(0.02 / 0.1); //0.19999999999999998 alert(1.14 * 100); //113.99999999999999 ;) </script> Math.round()就能在这里派上用场. 2.加号操作符的重载 "+"加号运算符即能做算术运算,又能够做字符串的连接.如果正确的使用它是很便利的.让我们看一看. <script> var msg, one="1"; msg = 2 + "1"; // msg = "21" msg = 2 + one; // msg = "21" msg = 1 + 1 + 1 + " musketeers"; // msg = "3 musketeers" msg = "Bond " + 0 + 0 + 7; //msg = "Bond 007" </script> 上述行为是因为这些运算都是从左到右执行的.类型的转换是基于其中的字符串或数字. 3.行尾插入分号 javascript 自动在行尾插入分号";",让我们来看看这在一个简单的示例中的情况. <script> function returnSame(a){ return //Inserts semi-colon to convert to return; a //a becomes a; - Unreachable } alert(returnSame(2)); //Output is undefined </script> 当在创建对象或使用对象的值的时候这个神奇的分号能使事情变得更复杂. 4.typeof操作符 typeof 是一个一元操作符,运算结果往往并不是如预期的那样.令人吃惊的是对"null"的运算结果是"object" <script> var obj={}; //object created using object literal var arr=[]; //array created by array literal alert(typeof(obj)); //object - Good alert(typeof(arr)); //object - Bad alert(typeof(null)); //object - Ugly! ;) </script> 它仅仅能查找对象的原始类型. 5. false, null, undefined, NaN, Infinity 尽管他们看起来相似,但他们代表着不通的意思.javascript有3种基本数据类型数字numbers, 字符串strings 和布尔 boolean,除此之外还有两个不重要的数据类型"undefine"和"null".按照"=="运算符运算,null和undefine是相等的. <script> var a; alert (a); //undefined alert (1/0); //Infinity alert (0/0); //NaN 0/0 == 0/0; //false - a NaN != NaN alert (b); //error </script> 6.字符串只替换第一个匹配的字符 与PHP或其他程序语言不同,默认情况下,javascript的字符替换只替换第一个出现的匹配的字符. <script> var nospace = "I dont need spaces".replace(" ","_"); alert(nospace); //I_dont need spaces - Only first occurence var nospace = "I dont need spaces".replace(/ /g,"_"); alert(nospace); //I_dont_need_spaces </script> 7.parseInt 函数 parseInt 用来将一个字符串转换为整数类型.这个函数能传入两个参数,第二个参数是指定多少进制的.这里十进制用 10 指定.如果没有指定进制,则parseInt函数自己会试图找到合适的进制.如果是这样,以0开头的字符串将会转换为8进制. <script> var str = "017"; var strInt = parseInt(str); //strInt = 15 ;) var strInt = parseInt(str,10); //strInt = 17 </script>

  推荐阅读

  图片上传即时显示缩略图的js代码

<script language="javascript" type="text/javascript"> var allowExt = ['jpg', 'gif', 'bmp', 'png', 'jpeg']; var preivew = function(file, container){ try{ var pic = new Picture(file, container); }c>>>详细阅读


本文标题:帮助避免错误的Javascript陷阱清单

地址:http://www.17bianji.com/kaifa2/JS/28633.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)