国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

lowett / 1085人閱讀

摘要:主要講述了中關于變量聲明和代碼編寫時你可能沒它留意的一些坑。但是換行符并不會被忽略,換行符起到了分號的功能。需要注意的是,大小寫敏感,和是兩個不同的變量。保留字中有一批稱為保留字的家伙是不能用做變量的,用了在一些瀏覽器中很可能會報錯。

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

那些熟悉PHP,C,Java語言的人初接觸JavaScript時,往往會覺得這是一門非常奇怪的語言。讓我們從語言的基本特性:變量以及編碼方式等方面來說說這些奇怪的地方。

代碼結構 分號(;)

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



        

空格和tab會被自動忽略,上述語句放在一行寫也是可以的。

alert("Hello");   alert("World!");

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

分號(;)缺失“陷阱”

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

陷阱1

下面的語句是不會運行的

var a="long
    line"

語法分析程序會把它解釋為

var a = "long;
  line ";

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

陷阱2

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

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系列文章]()

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/86377.html

相關文章

  • JavaScript 回顧學習:變量

    摘要:變量的分類全局變量可以在任何地方使用的變量局部變量在函數內聲明的變量只在函數內有定義,作用域是局部性的什么時候使用當一個數據需要被反復使用時,就要先保存在變量中。 第一篇回顧學習,變量 什么是變量 變量就是在內存中刨一個坑存一個數據,再給這個坑起個名。為什么要給一個加引號呢,因為JavaScript是松散類型的,即一個變量可以用來保存任何類型的數據。變量的分類:全局變量:可以在任何地方...

    KitorinZero 評論0 收藏0
  • JavaScriptthis

    之前關注了一個公眾號: JavaScript,里面詳細描述了this的各種情況,在此總結一下.只考慮當宿主環境是瀏覽器的時候,并且處于非嚴格模式下:this是在運行時綁定的,并不是在編寫時綁定的,this的綁定只取決于函數的調用方式.在全局范圍內,this等價于window對象。 console.log(this === window); //true 在全局范圍內,用var聲明一個變量和給th...

    tain335 評論0 收藏0
  • 理解 Javascript 變量作用域

    摘要:在中,沒有塊級作用域一說在或者等語言中,等語句塊內可以包含自己的局部變量,這些變量的作用域是這些語句的語句塊,而在中,不存在塊級作用域的說法。作用域鏈如果要深入理解中變量的作用域,那就必須拿出作用域鏈這個終極武器。 Javascript 這門語言與其他的大部分語言相比,有很多特殊性,這是很多人喜歡它或者討厭它的原因。其中變量的作用域問題,對很多初學者來說就是一個又一個「坑」。 變量的...

    Rocture 評論0 收藏0
  • 前端_JavaScript

    摘要:為此決定自研一個富文本編輯器。例如當要轉化的對象有環存在時子節點屬性賦值了父節點的引用,為了關于函數式編程的思考作者李英杰,美團金融前端團隊成員。只有正確使用作用域,才能使用優秀的設計模式,幫助你規避副作用。 JavaScript 專題之惰性函數 JavaScript 專題系列第十五篇,講解惰性函數 需求 我們現在需要寫一個 foo 函數,這個函數返回首次調用時的 Date 對象,注意...

    Benedict Evans 評論0 收藏0
  • 談談JavaScript詞法環境閉包(一)

    摘要:換句話說,定義在閉包中的函數可以記憶它被創建時候的環境。詞法環境的概念定義摘自百科。一個詞法環境由一個環境記錄項和可能為空的外部詞法環境引用構成。中使用詞法環境管理靜態作用域。 一個資深的同事在我出發去面試前告誡我,問JS知識點的時候千萬別主動提閉包,它就是一個坑啊!坑啊!啊! 閉包確實是js的難點和重點,其實也沒那么可怕,關鍵是機制的理解,可以和函數一起單獨拿出來說說,其實關于閉包的...

    AlphaWatch 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<