色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 無效

李佳璐1年前7瀏覽0評論

作為一門前端開發(fā)的常用語言,JavaScript(JS)可以參與網(wǎng)頁動畫、表單驗(yàn)證、頁面渲染等多種工作。但它也常常被一些錯(cuò)誤的實(shí)踐和誤解籠罩,導(dǎo)致使用不當(dāng)。本文將介紹一些JavaScript常見的無效用法,以及為什么這些用法應(yīng)該避免。

1. 在條件語句中使用賦值語句

if (x = 10) {
// do something
}

上面的代碼看上去似乎沒有什么問題,但卻隱藏著一個(gè)嚴(yán)重的錯(cuò)誤:條件語句應(yīng)該使用比較運(yùn)算符來測試條件,而不是賦值運(yùn)算符。因?yàn)橘x值運(yùn)算符返回的值是被賦的值,這意味著上述代碼實(shí)際上是對變量x賦值10,并且始終返回true。正確的做法是:

if (x === 10) {
// do something
}

2. 在字符串比較時(shí)使用雙等號

if (name == "John") {
// do something
}

這個(gè)錯(cuò)誤的想法是將字符串比較當(dāng)作數(shù)值比較。這種方法看似行之有效,但它沒有考慮到字符串“100”和數(shù)值100之間的差異。要進(jìn)行字符串比較,應(yīng)始終使用三重等號:

if (name === "John") {
// do something
}

3. 過長的if-else語句

if (x< 10) {
// do something
} else if (x< 20) {
// do something else
} else if (x< 30) {
// do something else again
} ……

這樣的代碼顯然太冗長,而且不易讀。更好的方法是使用“switch”語句:

switch(true) {
case (x< 10):
// do something
break;
case (x< 20):
// do something else
break;
case (x< 30):
// do something else again
break;
……
default:
// default case
}

4. 忘記使用var聲明變量

function doSomething() {
x = 10;
}

在前面的代碼中,“x”變量沒有被聲明,這將導(dǎo)致它成為全局變量。這意味著它可以通過任何代碼訪問,而且可能會影響整個(gè)應(yīng)用程序代碼的執(zhí)行。更好的方法是使用“var”或“l(fā)et”關(guān)鍵字聲明變量:

function doSomething() {
var x = 10;
}

5. 使用非正式的全局命名空間

var x = 10;
function doSomething() {
var x = 20;
……
}

使用全局變量污染的代碼將使您的JavaScript代碼變得復(fù)雜。因此,最好的做法是使用正式的命名空間:

var MYAPP = MYAPP || {};
MYAPP.x = 10;
MYAPP.doSomething = function() {
var x = 20;
// ……
}

6. 大量的全局變量

var x = 10;
var y = 20;
var z = 30;

在較大的應(yīng)用程序中,全局變量可能會變得非常復(fù)雜。為此,建議盡可能減少全局變量的數(shù)量,在代碼的不同部分使用函數(shù)參數(shù)傳遞值。

總之,以上這些無效的JavaScript用法使JavaScript的調(diào)試變得更加困難。建議開發(fā)人員應(yīng)該仔細(xì)審查自己的代碼,并嘗試消除這些無效行為。