亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

12種不宜使用的Javascript語法整理

2019-11-20 21:47:32
字體:
來源:轉載
供稿:網友
1.==
Javascript有兩組相等運算符,一組是==和!=,另一組是===和!==。前者只比較值的相等,后者除了值以外,還比較類型是否相同。
請盡量不要使用前一組,永遠只使用===和!==。因為==默認會進行類型轉換,規則十分難記。如果你不相信的話,請回答下面五個判斷式的值是true還是false:
  false == 'false'
  false == undefined
  false == null
  null == undefined
  0 == ''
前三個是false,后兩個是true。

2.with
with的本意是減少鍵盤輸入。比如
  obj.a = obj.b;
  obj.c = obj.d;
可以簡寫成
復制代碼 代碼如下:

  with(obj) {
    a = b;
    c = d;
  }

但是,在實際運行時,解釋器會首先判斷obj.b和obj.d是否存在,如果不存在的話,再判斷全局變量b和d是否存在。這樣就導致了低效率,而且可能會導致意外,因此最好不要使用with語句。

3.eval
eval用來直接執行一個字符串。這條語句也是不應該使用的,因為它有性能和安全性的問題,并且使得代碼更難閱讀。
eval能夠做到的事情,不用它也能做到。比如
  eval("myValue = myObject." + myKey + ";");
可以直接寫成
  myValue = myObject[myKey];
至于ajax操作返回的json字符串,可以使用官方網站提供的解析器json_parse.js運行。

4.continue
這條命令的作用是返回到循環的頭部,但是循環本來就會返回到頭部。所以通過適當的構造,完全可以避免使用這條命令,使得效率得到改善。

5.switch 貫穿
switch結構中的case語句,默認是順序執行,除非遇到break,return和throw。有的程序員喜歡利用這個特點,比如
復制代碼 代碼如下:

  switch(n) {
    case 1:
    case 2:
      break;
  }

這樣寫容易出錯,而且難以發現。因此建議避免switch貫穿,凡是有case的地方,一律加上break。
復制代碼 代碼如下:

  switch(n) {
    case 1:
      break;
    case 2:
      break;
  }

6.單行的塊結構
if、while、do和for,都是塊結構語句,但是也可以接受單行命令。比如
  if (ok) t = true;
甚至寫成
  if (ok)
    t = true;
這樣不利于閱讀代碼,而且將來添加語句時非常容易出錯。建議不管是否只有一行命令,都一律加上大括號。
  if (ok){
    t = true;
  }

7.++和--
遞增運算符++和遞減運算符--,直接來自C語言,表面上可以讓代碼變得很緊湊,但是實際上會讓代碼看上去更復雜和更晦澀。因此為了代碼的整潔性和易讀性,不用為好。

8.位運算符
Javascript完全套用了Java的位運算符,包括按位與&、按位或|、按位異或^、按位非~、左移<<、帶符號的右移>>和用0補足的右移>>>。
這套運算符針對的是整數,所以對Javascript完全無用,因為Javascript內部,所有數字都保存為雙精度浮點數。如果使用它們的話,Javascript不得不將運算數先轉為整數,然后再進行運算,這樣就降低了速度。而且“按位與運算符”&同“邏輯與運算符”&&,很容易混淆。

9.function語句
在Javascript中定義一個函數,有兩種寫法:
  function foo() { }

  var foo = function () { }
兩種寫法完全等價。但是在解析的時候,前一種寫法會被解析器自動提升到代碼的頭部,因此違背了函數應該先定義后使用的要求,所以建議定義函數時,全部采用后一種寫法。

10.基本數據類型的包裝對象
Javascript的基本數據類型包括字符串、數字、布爾值,它們都有對應的包裝對象String、Number和Boolean。所以,有人會這樣定義相關值:
復制代碼 代碼如下:

  new String("Hello World");
  new Number(2000);
  new Boolean(false);

這樣寫完全沒有必要,而且非常費解,因此建議不要使用。
另外,new Object和new Array也不建議使用,可以用{}和[]代替。

11.new語句
Javascript是世界上第一個被大量使用的支持Lambda函數的語言,本質上屬于與Lisp同類的函數式編程語言。但是當前世界,90%以上的程序員都是使用面向對象編程。為了靠近主流,Javascript做出了妥協,采納了類的概念,允許根據類生成對象。
類是這樣定義的:
復制代碼 代碼如下:

  var Cat = function (name) {
    this.name = name;
    this.saying = 'meow' ;
  }

然后,再生成一個對象
  var myCat = new Cat('mimi');
這種利用函數生成類、利用new生成對象的語法,其實非常奇怪,一點都不符合直覺。而且,使用的時候,很容易忘記加上new,就會變成執行函數,然后莫名其妙多出幾個全局變量。所以,建議不要這樣創建對象,而采用一種變通方法。
Douglas Crockford給出了一個函數:
復制代碼 代碼如下:

  Object.beget = function (o) {
    var F = function (o) {};
    F.prototype = o ;
    return new F;
  };

創建對象時就利用這個函數,對原型對象進行操作:
復制代碼 代碼如下:

  var Cat = {
    name:'',
    saying:'meow'
  };
  var myCat = Object.beget(Cat);

對象生成后,可以自行對相關屬性進行賦值:
  myCat.name = 'mimi';

12.void
在大多數語言中,void都是一種類型,表示沒有值。但是在Javascript中,void是一個運算符,接受一個運算數,并返回undefined。
  void 0; // undefined
這個命令沒什么用,而且很令人困惑,建議避免使用。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美女喷白浆| 国产a∨精品一区二区三区不卡| 精品成人av一区| 成人激情在线观看| 精品中文字幕乱| 亚洲精品日韩在线| 亚洲精品99久久久久| 国产91色在线|| 国产精品久久久久久久久粉嫩av| 欧美精品生活片| 欧美黑人xxxⅹ高潮交| 国产精品专区h在线观看| 在线精品91av| 97欧美精品一区二区三区| 亚洲第一av网| 日韩av电影在线播放| 国产在线98福利播放视频| 久久精品视频中文字幕| 欧美日本高清一区| 欧美巨乳美女视频| 日韩精品免费在线视频| 亚洲色图18p| 国产精品久久久久久久天堂| 亚洲综合在线中文字幕| 久久成人18免费网站| 亚洲高清福利视频| 久久国产色av| 欧美日韩在线观看视频| 国产精品久久久久久中文字| 日韩欧美在线看| 国产精品网红直播| 国产精品一区二区三区免费视频| 91精品国产高清久久久久久| 热久久免费国产视频| 国产美女搞久久| 欧美大荫蒂xxx| 91高清视频免费观看| 色av中文字幕一区| 97超视频免费观看| 美女撒尿一区二区三区| 国产精品影片在线观看| 91视频免费网站| 国产精品网址在线| 国产福利精品视频| 亚洲人在线观看| 国产一区二区动漫| 成人黄色生活片| 91亚洲精华国产精华| 成人日韩在线电影| 色婷婷av一区二区三区久久| 麻豆乱码国产一区二区三区| 亚洲韩国日本中文字幕| 92版电视剧仙鹤神针在线观看| 亚洲欧美三级在线| 都市激情亚洲色图| 97视频在线观看网址| 亚洲欧美日韩第一区| 久久久久久久国产精品| 亚洲精品美女网站| 在线性视频日韩欧美| 亚洲xxx自由成熟| 91免费国产网站| 日韩欧美成人精品| 国产精品久久久久999| 永久免费毛片在线播放不卡| 久久精品久久久久电影| 91九色国产在线| 国产亚洲一区精品| 欧美在线性视频| 欧美夫妻性视频| 伊人久久综合97精品| 丝袜一区二区三区| xxxxx91麻豆| 亚洲精品美女在线| 亚洲xxxx视频| 午夜精品久久久久久99热| 久久国产精品99国产精| 亚洲第一天堂无码专区| 日本国产欧美一区二区三区| 国产欧美一区二区三区四区| 日韩精品视频免费在线观看| 亚洲精品之草原avav久久| 午夜免费久久久久| 日韩电影免费在线观看| 欧美日韩国产一中文字不卡| 黑人巨大精品欧美一区二区一视频| 亚洲大胆人体在线| 国外成人在线直播| 国产成人精品一区二区在线| 国产欧美一区二区三区视频| 中文字幕亚洲自拍| 国产精品免费久久久久影院| 91精品国产91久久久久久不卡| 91成人在线播放| 欧美日韩亚洲系列| 国产精品视频一区二区高潮| 疯狂做受xxxx高潮欧美日本| 国产精品视频网| 欧美中文字幕在线观看| 国产精品成人免费电影| 5566成人精品视频免费| 日韩精品极品视频免费观看| 成人国内精品久久久久一区| 欧美尺度大的性做爰视频| 热99在线视频| 538国产精品一区二区在线| 国产精品久久久久9999| 亚洲韩国欧洲国产日产av| 91香蕉嫩草影院入口| 亚洲另类欧美自拍| 欧美体内谢she精2性欧美| 久久精品视频va| 91精品综合久久久久久五月天| 欧美亚洲在线播放| 久久久久久91香蕉国产| 亚洲一区二区国产| 亚洲xxxxx电影| 91产国在线观看动作片喷水| 久久久成人av| 庆余年2免费日韩剧观看大牛| 午夜精品蜜臀一区二区三区免费| 韩国福利视频一区| 色777狠狠综合秋免鲁丝| 精品偷拍一区二区三区在线看| 久久亚洲精品网站| 久久久黄色av| 亚洲全黄一级网站| 午夜精品一区二区三区视频免费看| 夜夜躁日日躁狠狠久久88av| 久久久综合免费视频| 韩国美女主播一区| 日韩电影免费观看在线| 亚洲图片在区色| 精品一区二区三区四区在线| 亚洲欧洲在线视频| 欧美日韩亚洲视频一区| 亚洲国产精品99久久| 欧美亚洲另类激情另类| 欧美成人精品在线| 亚洲精品国产suv| 国产精品偷伦一区二区| 91中文字幕在线观看| 国产精品美女无圣光视频| 在线观看国产精品日韩av| 神马久久桃色视频| 日本高清视频精品| 欧美寡妇偷汉性猛交| 国产精品一区二区在线| 国产精品久久网| 欧美国产第二页| 日本一区二区三区四区视频| 国产成人一区二区在线| 国产九九精品视频| 亚洲一区亚洲二区亚洲三区| 久久久久国色av免费观看性色| 成人久久一区二区| 欧美高清电影在线看| 2021国产精品视频| 欧美激情2020午夜免费观看| 国产精品亚洲视频在线观看| xxav国产精品美女主播| 日韩精品在线看| 国产69久久精品成人| 91亚洲精华国产精华|