JavaScript中,關於變量和聲明的一些坑

今天翻譯的這篇文章依舊比較基礎,是這個系列文章的第三篇。主要講述了JavaScript中關於變量聲明和代碼編寫時你可能沒它留意的一些坑。javascript

那些熟悉PHP,C,Java語言的人初接觸JavaScript時,每每會以爲這是一門很是奇怪的語言。讓咱們從語言的基本特性:變量以及編碼方式等方面來講說這些奇怪的地方。html

代碼結構

分號(;)

JavaScript的語句直接是用分號(;)來隔離的。java

<html>
<body>
    <script>
        alert('hello');
        alert('world');
    </script>    
</body>
</html>

空格和tab會被自動忽略,上述語句放在一行寫也是能夠的。瀏覽器

alert('Hello');   alert('World!');

可是換行符並不會被忽略,換行符起到了分號(;)的功能。this

分號(;)缺失「陷阱」

JavaScript初學者寫多條語句時經常會在分號上栽跟頭。編碼

陷阱1

下面的語句是不會運行的翻譯

var a="long
    line"

語法分析程序會把它解釋爲rest

var a = "long;
  line ";

有未完結的字符串時(缺乏反引號)會報錯。code

陷阱2

下列語句不能獲得你想要的結果htm

return
  result;

它被解釋爲

return;
   result;

這和

return result;

明顯不一樣。

若是你想獲得正確的答案,轉義符()(反斜線)能夠幫你。下列語句能夠正確運行。

return \
result;
var a = "long \
 line "

若是一個表達式沒有結束,換行也會被忽略。下面的代碼都是能夠正常運行的,有些奇怪,不過事實就是這樣。

var a = "long " +
 " line "
 
var b = 2 + (
 2 + 3
)

var b = 2 * 2
+ 4
alert(b)

總的來講,在大多數狀況下,在結尾省略分號(;)是可行的,可是這樣可能會致使一些莫名奇妙的bug,關因而否寫分號,一直以來到存在爭議,不過愈來愈多的人認爲在結尾處加上分號是一個好習慣。

變量

定義

變量是須要被定義的,在任何地方使用var都不會出錯,(ES6有let,const)

var x;

變量被定義後就能夠被賦任何值。

var x;
x = 5;

變量也能夠一次性定義多個,用逗號分開

var x,y,z;

還能夠一邊定義一邊賦值

var x="lalla",y="hahha";

JavaScript中也能夠給一個未定義的變量賦值

x="lalla",y="hahha";

可是這樣變量會變爲全局變量,會致使一些你不想要的後果。

變量名稱

變量名的開頭必須是字母,$或_,第二位及之後還可使用數字。

var $this,
 _private,
 $,
 _,
 $1,
 user15

須要注意的是,JavaScript大小寫敏感,A和a是兩個不一樣的變量。

保留字

JavaScript中有一批稱爲保留字的傢伙是不能用作變量的,用了在一些瀏覽器中極可能會報錯。這裏有一份保留字列表

變量類型

主要有

  • number

  • string

  • boolean

  • object(很神奇的東西,之後會詳細說到)

  • special values:bull和undefined

弱類型

JavaScript中的變量是弱類型的,這意味着一些兩點

  • 每一個變量都有其類型;

  • 一個變量值得改變會影響它的類型。

好比說

var userId = 123;   // 123 is a number
var name = "John";  // "John" is a string

var userId = 123;   // 123 is a number
userId = false;     // now userId is boolean

註釋

JavaScript有兩種註釋方法

  • 單行註釋

// let's see who is here:
var name = "John"; // My most valued visitor
  • 多行註釋

/*
The following variable has a short name.
Usually a short name means that the variable is
temporary and used only in nearest code.
*/
var a = "John";

由{}包起來的多行語句稱做塊。這在for,if,while,function等中經常用到。

本文小結

  • 在任何地方使用var 定義變量都不會出錯;

  • 變量能夠是任何類型

  • 兩種註釋方式

  • 在語句結束時不要忘了加分號。

  • 原文Variables and statements

  • [深刻了解JavaScript系列文章]()

相關文章
相關標籤/搜索