欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解javascript學(xué)習(xí)筆記(一) 編寫(xiě)高質(zhì)量代碼

 更新時(shí)間:2012年08月09日 15:52:28   作者:  
編寫(xiě)高質(zhì)量JavaScript的一些要素,例如避免全局變量,使用單變量聲明,在循環(huán)中預(yù)緩存length(長(zhǎng)度),遵循代碼閱讀,以及更多
一、變量

•全局變量
JavaScript的兩個(gè)特征,不自覺(jué)地創(chuàng)建出全局變量是出乎意料的容易。首先,你可以甚至不需要聲明就可以使用變量;第二,JavaScript有隱含的全局概念,意味著你不聲明的任何變量都會(huì)成為一個(gè)全局對(duì)象屬性(不是真正意義上的全局變量,可以用delete刪除)
復(fù)制代碼 代碼如下:

function sum(x,y) {
// result 未聲明,為隱式全局變量
result = x + y;
return result;
}

function foo() {
// 使用任務(wù)鏈進(jìn)行部分var聲明,b為隱式全局變量
var a = b = 1;
}

建議:
復(fù)制代碼 代碼如下:

function (x,y) {
var a ,b ;
a = b = 1;//a,b 為局部變量
}

•var作用
通過(guò)var創(chuàng)建的全局變量(任何函數(shù)之外的程序中創(chuàng)建)是不能被刪除的。無(wú)var創(chuàng)建的隱式全局變量(無(wú)視是否在函數(shù)中創(chuàng)建)是能被刪除的。

復(fù)制代碼 代碼如下:

// 定義三個(gè)全局變量
var global_var = 1;
global_novar = 2; // 反面教材
(function () {
global_fromfunc = 3; // 反面教材
}());

// 試圖刪除
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true

// 測(cè)試該刪除
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"

•單var形式聲明變量
在函數(shù)頂部使用單var語(yǔ)句是比較有用的一種形式。所有未初始化但聲明的變量的初始值是undefined

復(fù)制代碼 代碼如下:

function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {},
i,
j;
// function body...
}

•var散布問(wèn)題
復(fù)制代碼 代碼如下:

// 反例
myname = "global"; // 全局變量
function func() {
alert(myname); //"undefined" var myname = "local"; alert(myname); // "local" } func();等同于:


myname = "global"; // global variable
function func() {
var myname; // 等同于 -> var myname = undefined;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"}
func();

二 for循環(huán)

•建議使用
復(fù)制代碼 代碼如下:

function looper() {
var i = 0,
max,
myarray = [];
// ...
for (i = 0, max = myarray.length; i < max; i++) {
// 使用myarray[i]做點(diǎn)什么
}
}

使用以下表達(dá)式代替i++
復(fù)制代碼 代碼如下:

i = i + 1
i += 1以下兩種循環(huán)方式更快


//第一種變化的形式:

var i, myarray = [];
for (i = myarray.length; i–-;) {
// 使用myarray[i]做點(diǎn)什么
}

//第二種使用while循環(huán):

var myarray = [],
i = myarray.length;
while (i–-) {
// 使用myarray[i]做點(diǎn)什么
}

•for-in循環(huán)
應(yīng)用在非數(shù)組對(duì)象的遍歷上,數(shù)組使用正常的for循環(huán),對(duì)象使用for-in循環(huán)。使用hasOwnProperty()方法,當(dāng)遍歷對(duì)象屬性的時(shí)候可以過(guò)濾掉從原型鏈上下來(lái)的屬性。

三 避免隱式類(lèi)型轉(zhuǎn)換

•堅(jiān)持使用===和!==

四 避免使用eval,以及避免給setInterval(), setTimeout()和Function()構(gòu)造函數(shù)傳遞字符串,用函數(shù)代替。

五 parseInt()數(shù)值轉(zhuǎn)換

建議給基數(shù)參數(shù)賦值,
復(fù)制代碼 代碼如下:

var month = "06",
year = "09";
month = parseInt(month, 10);//開(kāi)頭為0的字符串會(huì)被當(dāng)做8進(jìn)制處理
year = parseInt(year, 10);

六 編程規(guī)范

構(gòu)造函數(shù)命名:MyConstructor();

一般函數(shù)命名:myFunction();

變量命名:firstName;

私有屬性或方法:_secondeName,

常量:PI,MAX;

相關(guān)文章

  • javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析

    javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析

    這篇文章主要介紹了javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 二級(jí)域名或跨域共享Cookies的實(shí)現(xiàn)方法

    二級(jí)域名或跨域共享Cookies的實(shí)現(xiàn)方法

    適用于Asp。 在主域名設(shè)置的Cookie,在各子域名共用;適用于博客等提供二級(jí)域名。這個(gè)問(wèn)題,以網(wǎng)上有眾多帖子,可惜都沒(méi)有完整解決。
    2008-08-08
  • JavaScript在瀏覽器中的執(zhí)行機(jī)制

    JavaScript在瀏覽器中的執(zhí)行機(jī)制

    既然說(shuō)到了JavaScript,那么就會(huì)繞不過(guò)去執(zhí)行上下文,只有理解了執(zhí)行上下文才能更好的理解JavaScript本身,不過(guò)本部分不是專(zhuān)門(mén)講解?JavaScript的,主要從JavaScript的執(zhí)行順序開(kāi)始介紹一下JavaScript是怎樣運(yùn)行的
    2023-09-09
  • JS異步文件上傳(兼容IE8+)

    JS異步文件上傳(兼容IE8+)

    本文主要介紹了JS實(shí)現(xiàn)異步文件上傳的相關(guān)資料,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Javascript 檢測(cè)鍵盤(pán)按鍵信息及鍵碼值對(duì)應(yīng)介紹

    Javascript 檢測(cè)鍵盤(pán)按鍵信息及鍵碼值對(duì)應(yīng)介紹

    Javascript中有3個(gè)事件句柄在對(duì)應(yīng)鍵盤(pán)的輸入狀態(tài):按鍵被按下(按下按鍵但還沒(méi)有抬起)、點(diǎn)擊按鍵(按下并抬起按鍵)、按鍵抬起(按鍵抬起之后),接下來(lái)詳細(xì)介紹,感興趣的朋友可以了解下
    2013-01-01
  • 詳解ant-design-pro使用qiankun微服務(wù)

    詳解ant-design-pro使用qiankun微服務(wù)

    這篇文章主要介紹了ant-design-pro使用qiankun微服務(wù)詳解,其實(shí)微服務(wù)需要有主應(yīng)用和子應(yīng)用,?一個(gè)子應(yīng)用可以配置多個(gè)相關(guān)聯(lián)的主應(yīng)用,配置方法都是一樣的,對(duì)ant-design-pro微服務(wù)配置相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • js簡(jiǎn)單的表拖拽

    js簡(jiǎn)單的表拖拽

    用js實(shí)現(xiàn)表格的拖拽效果代碼
    2008-05-05
  • 原生js實(shí)現(xiàn)數(shù)字字母混合驗(yàn)證碼的簡(jiǎn)單實(shí)例

    原生js實(shí)現(xiàn)數(shù)字字母混合驗(yàn)證碼的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了原生js實(shí)現(xiàn)數(shù)字字母混合驗(yàn)證碼的簡(jiǎn)單實(shí)例,注釋很詳細(xì),感興趣的小伙伴們可以參考一下
    2015-12-12
  • PHP讀取遠(yuǎn)程txt文檔到數(shù)組并實(shí)現(xiàn)遍歷

    PHP讀取遠(yuǎn)程txt文檔到數(shù)組并實(shí)現(xiàn)遍歷

    這篇文章主要介紹了PHP讀取遠(yuǎn)程txt文檔到數(shù)組并實(shí)現(xiàn)遍歷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • js判斷對(duì)象是否存在某個(gè)屬性的幾種辦法技巧

    js判斷對(duì)象是否存在某個(gè)屬性的幾種辦法技巧

    這篇文章主要給大家介紹了關(guān)于js判斷對(duì)象是否存在某個(gè)屬性的幾種辦法技巧,判斷對(duì)象中是否有某屬性的常見(jiàn)方式總結(jié),不同的場(chǎng)景要使用不同的方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12

最新評(píng)論