亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

JavaScript菜鳥教程

JavaScript 對象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊

JavaScript 常見錯(cuò)誤

JavaScript是當(dāng)今行業(yè)中最流行的編程語言之一。如果您想學(xué)習(xí)這種語言,請避免以下錯(cuò)誤。

意外使用賦值運(yùn)算符

如果我們不小心在if語句中使用賦值運(yùn)算符(=)而不是比較運(yùn)算符(==),則JavaScript程序可能會(huì)產(chǎn)生意外結(jié)果。

如果num不等于20,則此if語句返回false:

var num = 0;
if (num == 20)
測試看看?/?

此if語句返回true,因?yàn)?0為true:

var num = 0;
if (num = 20)
測試看看?/?

分配總是返回分配的值。

使用“ ==”代替“ ===”

當(dāng)人們開始使用JavaScript時(shí),這可能是最常見的錯(cuò)誤。

在常規(guī)比較中,數(shù)據(jù)類型無關(guān)緊要。如果if語句返回true:

var a = 20;
var b = "20";
if (a == b)
測試看看?/?

在嚴(yán)格的比較中,數(shù)據(jù)類型確實(shí)很重要。此if語句返回false:

var a = 20;
var b = "20";
if (a === b)
測試看看?/?

(a ==b)和(a ===b)之間的區(qū)別是:

  • == 如果a等于b,則返回true

  • ===如果a等于b,并且它們屬于同一類型,則返回true

通常,您應(yīng)始終使用===也稱為嚴(yán)格相等運(yùn)算符或相同運(yùn)算符。

令人困惑的加法和串聯(lián)

從前面的章節(jié)中可以知道,+運(yùn)算符用于加法和串聯(lián)。

另外是關(guān)于添加數(shù)字

串聯(lián)是關(guān)于添加字符串的。

因此,將數(shù)字添加為數(shù)字與將數(shù)字添加為字符串會(huì)產(chǎn)生不同的結(jié)果:

var a = 10;
var b = 5;
var c = a + b; // c = 15

var a = 10;
var b = "5";
var c = a + b; // c = "105"
測試看看?/?

錯(cuò)誤使用float

JavaScript中的所有數(shù)字都存儲(chǔ)為64位浮點(diǎn)數(shù)(Floats)。

所有編程語言(包括JavaScript)在精確的浮點(diǎn)值上都有困難:

var a = 0.1;
var b = 0.2;
var c = a + b;   // c的結(jié)果不會(huì)是 0.3
測試看看?/?

為了解決上述問題,它有助于相乘和相除:

var c = (a * 10 + b * 10) / 10; // c = 0.3
測試看看?/?

JavaScript字符串換行

JavaScript將使您可以將語句分為兩行:

var str =
"NHOOO Tutorial";
測試看看?/?

但是,中斷字符串中間的語句將不起作用:

var str = "NHOOO
Tutorial";
測試看看?/?

如果必須中斷字符串中的語句,則必須使用“反斜杠”(轉(zhuǎn)義字符):

var str = "NHOOO \
Tutorial";
測試看看?/?

    另一個(gè)解決方案是使用模板字面量(反引號``)字符串。 這些消除了轉(zhuǎn)義長字符串的需要:

var str = `Air Pollution is introduction of chemicals to the
atmosphere. It damages environmental balance and causes
several diseases.`;
測試看看?/?

分號放錯(cuò)位置

由于分號放置錯(cuò)誤,無論num的值如何,都將執(zhí)行以下代碼:

if (num === 45);
{
  // code block  
}
測試看看?/?

以逗號結(jié)尾的定義

對象和數(shù)組定義中的尾部逗號在ECMAScript 5中是合法的。

let fruits = ["Apple", "Mango", "Banana", "Orange",];//數(shù)組
let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//對象

然而,在數(shù)組結(jié)尾添加逗號,Internet Explorer 8將會(huì)崩潰。

JSON不允許尾隨逗號。

塊級作用域

JavaScript不會(huì)為每個(gè)代碼塊創(chuàng)建新的作用域。

在許多編程語言中都適用,但在JavaScript中則不適用。

for (var i = 0; i < 10; i++) {
  // some code
}
document.write(i);   // 這個(gè)輸出會(huì)是什么?
測試看看?/?

使用let關(guān)鍵字為每個(gè)代碼塊創(chuàng)建一個(gè)新范圍:

for (let i = 0; i < 10; i++) {
  // some code
}
document.write(i);   // 這個(gè)輸出會(huì)是什么?
測試看看?/?

null和undefined之間的區(qū)別

undefined值指示尚未為變量分配值,或者根本沒有聲明變量。

null值表示故意不存在任何對象值。

這使得測試對象是否為空,變得有點(diǎn)困難。

可以通過測試類型是否undefined,來測試對象是否存在:

if (typeof myObj === "undefined")
測試看看?/?

    但是您無法測試對象是否為null,因?yàn)槿绻麑ο?a href="http://www.jixiangtaizi.com.cn/jsref/global_undefined.html">undefined,這將會(huì)拋出錯(cuò)誤:

if (myObj === null)
測試看看?/?

要解決此問題,必須測試一個(gè)對象是否不是undefined,并且不是null

if (typeof myObj !== "undefined" && myObj !== null)
測試看看?/?