一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

幫助避免錯誤的Javascript陷阱清單

翻譯講究"信/雅/達",我就談不上了.希望能把文章的意思不要弄錯就行.

編程的陷阱(gotcha)是指計算機系統中的意想不到的文檔特征而不是bug.這些陷阱使得初學者遠離Javascript編程.在我看來,因為所有的瀏覽器都能運行Javascript使得它是使用最廣泛的語言之一,但它也是最少人研究的.讓我們從一個基礎的示例開始.

1.浮點運算

這可能是挫敗一些對Javascript不熟悉并準備執行一些數學運算的人的主要原因.

  1. <script>  
  2. alert(0.02 / 0.1);  //0.19999999999999998   
  3. alert(1.14 * 100);  //113.99999999999999    ;)  
  4. </script> 

Math.round()就能在這里派上用場.

2.加號操作符的重載

"+"加號運算符即能做算術運算,又能夠做字符串的連接.如果正確的使用它是很便利的.讓我們看一看.

  1. <script>  
  2. var msg, one="1";  
  3. msg = 2 + "1"// msg = "21"  
  4. msg = 2 + one; // msg = "21"  
  5. msg = 1 + 1 + 1 + " musketeers"// msg = "3 musketeers"  
  6. msg = "Bond " + 0 + 0 + 7; //msg = "Bond 007"    
  7. </script> 

上述行為是因為這些運算都是從左到右執行的.類型的轉換是基于其中的字符串或數字.

3.行尾插入分號

Javascript 自動在行尾插入分號";",讓我們來看看這在一個簡單的示例中的情況.

  1. <script>  
  2. function returnSame(a){  
  3.    return                 //Inserts semi-colon to convert to return;  
  4.    a                      //a becomes a; - Unreachable  
  5. }  
  6. alert(returnSame(2));  //Output is undefined  
  7. </script> 

當在創建對象或使用對象的值的時候這個神奇的分號能使事情變得更復雜.

4.typeof操作符

typeof 是一個一元操作符,運算結果往往并不是如預期的那樣.令人吃驚的是對"null"的運算結果是"object"

  1. <script>  
  2. var obj={};  //object created using object literal  
  3. var arr=[];  //array created by array literal  
  4. alert(typeof(obj));   //object  - Good  
  5. alert(typeof(arr));   //object  - Bad  
  6. alert(typeof(null));  //object  - Ugly!  ;) 
  7. </script>

它僅僅能查找對象的原始類型.

5. false, null, undefined, NaN, Infinity

盡管他們看起來相似,但他們代表著不通的意思.Javascript有3種基本數據類型數字numbers, 字符串strings 和布爾 boolean,除此之外還有兩個不重要的數據類型"undefine"和"null".按照"=="運算符運算,null和undefine是相等的.

  1. <script>  
  2. var a;  
  3. alert (a);    //undefined  
  4. alert (1/0);  //Infinity  
  5. alert (0/0);  //NaN  
  6. 0/0 == 0/0;   //false - a NaN != NaN  
  7. alert (b);    //error  
  8. </script> 

6.字符串只替換第一個匹配的字符

php或其他程序語言不同,默認情況下,Javascript的字符替換只替換第一個出現的匹配的字符.

  1. <script>  
  2. var nospace = "I dont need spaces".replace(" ","_");  
  3. alert(nospace);    //I_dont need spaces   - Only first occurence  
  4. var nospace = "I dont need spaces".replace(/ /g,"_");  
  5. alert(nospace);    //I_dont_need_spaces  
  6. </script> 

 7.parseInt 函數

parseInt 用來將一個字符串轉換為整數類型.這個函數能傳入兩個參數,第二個參數是指定多少進制的.這里十進制用 10 指定.如果沒有指定進制,則parseInt函數自己會試圖找到合適的進制.如果是這樣,以0開頭的字符串將會轉換為8進制.

  1. <script>  
  2. var str = "017";  
  3. var strInt = parseInt(str);      //strInt = 15  ;)  
  4. var strInt = parseInt(str,10);   //strInt = 17  
  5. </script> 

JavaScript技術幫助避免錯誤的Javascript陷阱清單,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产中文字幕第一页 | 日韩欧美亚洲国产精品字幕久久久 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁狠狠躁中文字幕老牛 | 亚洲综合图片小说区热久久 | 永久黄网站色视频免费观看 | 日韩一区二区超清视频 | 国产福利在线观看永久免费 | 欧美成人性色大片在线观看 | 在线观看一区二区三区视频 | 日韩亚洲国产综合久久久 | 一区二区三区在线视频播放 | 久久福利一区二区 | 日日好吊妞| 狠狠久久久久久亚洲综合网 | 91精品导航在线网址免费 | 一区二区国产在线播放 | 日本福利片国产午夜久久 | 国产精品免费视频播放 | 五月婷婷综合在线 | 亚洲一区二区影视 | 九九免费视频 | 日本一区二区三区日本免费 | 五月天综合色 | 国产精品免费一区二区三区四区 | 精品国产免费福利片 | 在线a网站 | www.黄色大片 | 漂亮大学生一级毛片 | 欧美精品成人久久网站 | 床戏免费网站 | 中文字幕99在线精品视频免费看 | 国语高清精品一区二区三区 | 亚洲五月综合 | 丁香花五月婷婷开心 | 一区二区免费看 | 91精品国产免费 | 天天色天天插 | 中文激情 | 日本人视频18jizz免费 | 日本精品一区二区三区在线 | 国产福利一区二区三区在线视频 |