欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaScript語法中12個需要繞開的陷阱分別是怎樣的

今天就跟大家聊聊有關JavaScript語法中12個需要繞開的陷阱分別是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了皇姑免費建站歡迎大家使用!

12種應該避免的JavaScript語法,內(nèi)容如下:

1. == 

Javascript有兩組相等運算符,一組是==和!=,另一組是===和!==。前者只比較值的相等,后者除了值以外,還比較類型是否相同。

請盡量不要使用前一組,永遠只使用===和!==。因為==默認會進行類型轉(zhuǎn)換,規(guī)則十分難記。如果你不相信的話,請回答下面五個判斷式的值是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用來直接執(zhí)行一個字符串。這條語句也是不應該使用的,因為它有性能和安全性的問題,并且使得代碼更難閱讀。

eval能夠做到的事情,不用它也能做到。比如

eval("myValue = myObject." + myKey + ";");

可以直接寫成

myValue = myObject[myKey];

至于ajax操作返回的json字符串,可以使用官方網(wǎng)站提供的解析器json_parse.js運行。

4. continue

這條命令的作用是返回到循環(huán)的頭部,但是循環(huán)本來就會返回到頭部。所以通過適當?shù)臉?gòu)造,完全可以避免使用這條命令,使得效率得到改善。

5. switch 貫穿

switch結(jié)構(gòu)中的case語句,默認是順序執(zhí)行,除非遇到break,return和throw。有的程序員喜歡利用這個特點,比如

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

這樣寫容易出錯,而且難以發(fā)現(xiàn)。因此建議避免switch貫穿,凡是有case的地方,一律加上break。

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

6. 單行的塊結(jié)構(gòu)

if、while、do和for,都是塊結(jié)構(gòu)語句,但是也可以接受單行命令。比如

if (ok) t = true;

甚至寫成

if (ok)  t = true;

這樣不利于閱讀代碼,而且將來添加語句時非常容易出錯。建議不管是否只有一行命令,都一律加上大括號。

if (ok){  t = true;  }

7. ++和--

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

8. 位運算符

Javascript完全套用了Java的位運算符,包括按位與&、按位或|、按位異或^、按位非~、左移<<、帶符號的右移>>和用0補足的右移>>>。

這套運算符針對的是整數(shù),所以對Javascript完全無用,因為Javascript內(nèi)部,所有數(shù)字都保存為雙精度浮點數(shù)。如果使用它們的話,Javascript不得不將運算數(shù)先轉(zhuǎn)為整數(shù),然后再進行運算,這樣就降低了速度。而且“按位與運算符”&同“邏輯與運算符”&&,很容易混淆。

9. function語句

在Javascript中定義一個函數(shù),有兩種寫法:

function foo() { }

var foo = function () { }

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

10. 基本數(shù)據(jù)類型的包裝對象

Javascript的基本數(shù)據(jù)類型包括字符串、數(shù)字、布爾值,它們都有對應的包裝對象String、Number和Boolean。所以,有人會這樣定義相關值:

new String("Hello World");   new Number(2000);   new Boolean(false);
  • 詳解Javascript中checkbox樹的功能

  • 對決JavaScript HTML5腳本API預覽

  • Javascript和CSS菜單推薦13條

  • 探秘Google的JavaScript開發(fā)工具Closure

  • JavaScript將增加本地操作API 可直接操作

這樣寫完全沒有必要,而且非常費解,因此建議不要使用。

另外,new Object和new Array也不建議使用,可以用{}和[]代替。

11. new語句

Javascript是世界上***個被大量使用的支持Lambda函數(shù)的語言,本質(zhì)上屬于與Lisp同類的函數(shù)式編程語言。但是當前世界,90%以上的程序員都是使用面向?qū)ο缶幊?。為了靠近主流,Javascript做出了妥協(xié),采納了類的概念,允許根據(jù)類生成對象。

類是這樣定義的:

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

然后,再生成一個對象

var myCat = new Cat('mimi');

這種利用函數(shù)生成類、利用new生成對象的語法,其實非常奇怪,一點都不符合直覺。而且,使用的時候,很容易忘記加上new,就會變成執(zhí)行函數(shù),然后莫名其妙多出幾個全局變量。所以,建議不要這樣創(chuàng)建對象,而采用一種變通方法。

Douglas Crockford給出了一個函數(shù):

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

創(chuàng)建對象時就利用這個函數(shù),對原型對象進行操作:

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

對象生成后,可以自行對相關屬性進行賦值:

myCat.name = 'mimi';

12. void

在大多數(shù)語言中,void都是一種類型,表示沒有值。但是在Javascript中,void是一個運算符,接受一個運算數(shù),并返回undefined。

void 0; // undefined

這個命令沒什么用,而且很令人困惑,建議避免使用。

看完上述內(nèi)容,你們對JavaScript語法中12個需要繞開的陷阱分別是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

名稱欄目:JavaScript語法中12個需要繞開的陷阱分別是怎樣的
網(wǎng)頁地址:http://aaarwkj.com/article44/ggpgee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、微信小程序、網(wǎng)站制作、關鍵詞優(yōu)化、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
亚洲乱码一区二区在线| 中文字幕四虎在线观看| 操老熟女一区二区三区| 91午夜精品亚洲一区二区三区| 欧美日韩亚洲精品久久| 国产黄色一区二区三区四区 | 亚洲中文字幕一区二区人妻| 亚洲国产剧情中文字幕| 天天操时时操夜夜操| 免费人成网站在线观看| 黄色免费av片在线观看| 国产日韩欧美另类综合| 我的极品小姨在线观看| 老熟女露脸吞精一二三四区| 日本欧美国产一区二区| 久久精品久久黄色片看看| 日韩精品中文字幕欧美乱| 四虎精品免费在线视频| 精品国产一区二区三区性色av| 国产视频成人免费观看| 日韩无砖区2021不卡| 91色九色吧在线观看| 无毛亚洲视频在线观看| 欧美国产日韩在线一区二区三区| 国产传媒剧情剧资源网站| 精华国产一区二区三区| 亚洲男人堂色偷偷一区| 美女黄色午夜福利网站| 欧美男女精品一区二区三区| 日本黄色高清视频一区| 中文字幕在线精品乱码麻豆| 欧美日韩在线一区2区| 国产欧美日韩精品国产| 三级国产大片在线观看| 久久精品国产亚洲av麻豆网站| 看看美女阴逼毛茸茸的| 亚洲男人天堂免费观看| 曰韩精品一区二区三区乱码| 日本女优中文字幕久久| 成人黄色18免费网站| 国产精品精品久久久久久|