最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解javascript學習筆記(一) 編寫高質(zhì)量代碼

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

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

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

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

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

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

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

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

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

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

// 測試該刪除
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"

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

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

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

•var散布問題
復(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]做點什么
}
}

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

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


//第一種變化的形式:

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

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

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

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

三 避免隱式類型轉(zhuǎ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);//開頭為0的字符串會被當做8進制處理
year = parseInt(year, 10);

六 編程規(guī)范

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

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

變量命名:firstName;

私有屬性或方法:_secondeName,

常量:PI,MAX;

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)打卡日歷功能

    微信小程序?qū)崿F(xiàn)打卡日歷功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)打卡日歷功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • js構(gòu)造函數(shù)constructor和原型prototype原理與用法實例分析

    js構(gòu)造函數(shù)constructor和原型prototype原理與用法實例分析

    這篇文章主要介紹了js構(gòu)造函數(shù)constructor和原型prototype原理與用法,結(jié)合實例形式分析js構(gòu)造函數(shù)constructor和原型prototype基本原理、功能、使用方法及操作注意事項,需要的朋友可以參考下
    2020-03-03
  • js實現(xiàn)鼠標跟隨運動效果

    js實現(xiàn)鼠標跟隨運動效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)鼠標跟隨運動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • JS簡單實現(xiàn)動畫彈出層效果

    JS簡單實現(xiàn)動畫彈出層效果

    本文給大家介紹的是是一款javascript彈出層特效,支持點擊觸發(fā)js彈出層,滑過觸發(fā)js彈出層,帶動畫效果js彈出層,可自定義函數(shù)回調(diào)js彈出層。
    2015-05-05
  • javascript檢測移動設(shè)備橫豎屏

    javascript檢測移動設(shè)備橫豎屏

    移動端的開發(fā)過程中,免不了要判斷橫豎屏,然后在執(zhí)行其他操作,比如分別加載不同樣式,橫屏顯示某些內(nèi)容,豎屏顯示其他內(nèi)容等等。
    2016-05-05
  • 如何在微信小程序中使用less詳解(最優(yōu)方式)

    如何在微信小程序中使用less詳解(最優(yōu)方式)

    這篇文章主要給大家介紹了關(guān)于如何在微信小程序中使用less(最優(yōu)方式)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 判定對象是否為window的js代碼

    判定對象是否為window的js代碼

    這是一個非常有趣的題目。我們先從Object.prototype.toString入手,看能否解決它。
    2010-02-02
  • window.onload使用指南

    window.onload使用指南

    我們經(jīng)常使用 window.onload 來處理頁面,當頁面加載完成做一些事情。但這個 window.onload 是頁面全部加載完成,甚至包括圖片,下面我們就來詳細探討下window.onload的用法
    2015-09-09
  • 模仿password輸入框的實現(xiàn)代碼

    模仿password輸入框的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄7聀assword輸入框的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 原生JS實現(xiàn)頂部導(dǎo)航欄顯示按鈕+搜索框功能

    原生JS實現(xiàn)頂部導(dǎo)航欄顯示按鈕+搜索框功能

    這篇文章主要介紹了原生js實現(xiàn)頂部導(dǎo)航欄顯示按鈕+搜索框功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12

最新評論

宜君县| 连江县| 绵阳市| 轮台县| 卓尼县| 溆浦县| 宁武县| 南京市| 平昌县| 越西县| 太白县| 彭山县| 涪陵区| 周宁县| 沂水县| 体育| 崇信县| 大化| 漯河市| 淳安县| 民勤县| 资源县| 乌鲁木齐县| 溧阳市| 黎平县| 扬州市| 汉川市| 永川市| 南充市| 青铜峡市| 海城市| 会昌县| 阿合奇县| 遂宁市| 保康县| 肇庆市| 东兴市| 东兰县| 四川省| 兴国县| 嘉义县|