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

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript中,關(guān)于變量和聲明的一些坑

lowett / 1083人閱讀

摘要:主要講述了中關(guān)于變量聲明和代碼編寫(xiě)時(shí)你可能沒(méi)它留意的一些坑。但是換行符并不會(huì)被忽略,換行符起到了分號(hào)的功能。需要注意的是,大小寫(xiě)敏感,和是兩個(gè)不同的變量。保留字中有一批稱(chēng)為保留字的家伙是不能用做變量的,用了在一些瀏覽器中很可能會(huì)報(bào)錯(cuò)。

今天翻譯的這篇文章依舊比較基礎(chǔ),是這個(gè)系列文章的第三篇。主要講述了JavaScript中關(guān)于變量聲明和代碼編寫(xiě)時(shí)你可能沒(méi)它留意的一些坑。

那些熟悉PHP,C,Java語(yǔ)言的人初接觸JavaScript時(shí),往往會(huì)覺(jué)得這是一門(mén)非常奇怪的語(yǔ)言。讓我們從語(yǔ)言的基本特性:變量以及編碼方式等方面來(lái)說(shuō)說(shuō)這些奇怪的地方。

代碼結(jié)構(gòu) 分號(hào)(;)

JavaScript的語(yǔ)句直接是用分號(hào)(;)來(lái)隔離的。



        

空格和tab會(huì)被自動(dòng)忽略,上述語(yǔ)句放在一行寫(xiě)也是可以的。

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

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

分號(hào)(;)缺失“陷阱”

JavaScript初學(xué)者寫(xiě)多條語(yǔ)句時(shí)常常會(huì)在分號(hào)上栽跟頭。

陷阱1

下面的語(yǔ)句是不會(huì)運(yùn)行的

var a="long
    line"

語(yǔ)法分析程序會(huì)把它解釋為

var a = "long;
  line ";

有未完結(jié)的字符串時(shí)(缺少反引號(hào))會(huì)報(bào)錯(cuò)。

陷阱2

下列語(yǔ)句不能得到你想要的結(jié)果

return
  result;

它被解釋為

    return;
   result;

這和

return result;

明顯不同。

如果你想得到正確的答案,轉(zhuǎn)義符()(反斜線)可以幫你。下列語(yǔ)句可以正確運(yùn)行。

return 
result;
var a = "long 
 line "

如果一個(gè)表達(dá)式?jīng)]有結(jié)束,換行也會(huì)被忽略。下面的代碼都是可以正常運(yùn)行的,有些奇怪,不過(guò)事實(shí)就是這樣。

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

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

總的來(lái)說(shuō),在大多數(shù)情況下,在結(jié)尾省略分號(hào)(;)是可行的,但是這樣可能會(huì)導(dǎo)致一些莫名奇妙的bug,關(guān)于是否寫(xiě)分號(hào),一直以來(lái)到存在爭(zhēng)議,不過(guò)越來(lái)越多的人認(rèn)為在結(jié)尾處加上分號(hào)是一個(gè)好習(xí)慣。

變量 定義

變量是需要被定義的,在任何地方使用var都不會(huì)出錯(cuò),(ES6有l(wèi)et,const)

var x;

變量被定義后就可以被賦任何值。

var x;
x = 5;

變量也可以一次性定義多個(gè),用逗號(hào)分開(kāi)

var x,y,z;

還可以一邊定義一邊賦值

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

JavaScript中也可以給一個(gè)未定義的變量賦值

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

但是這樣變量會(huì)變?yōu)槿肿兞浚瑫?huì)導(dǎo)致一些你不想要的后果。

變量名稱(chēng)

變量名的開(kāi)頭必須是字母,$或_,第二位及以后還可以使用數(shù)字。

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

需要注意的是,JavaScript大小寫(xiě)敏感,A和a是兩個(gè)不同的變量。

保留字

JavaScript中有一批稱(chēng)為保留字的家伙是不能用做變量的,用了在一些瀏覽器中很可能會(huì)報(bào)錯(cuò)。這里有一份保留字列表。

變量類(lèi)型

主要有

number

string

boolean

object(很神奇的東西,以后會(huì)詳細(xì)說(shuō)到)

special values:bull和undefined

弱類(lèi)型

JavaScript中的變量是弱類(lèi)型的,這意味著一些兩點(diǎn)

每個(gè)變量都有其類(lèi)型;

一個(gè)變量值得改變會(huì)影響它的類(lèi)型。

比如說(shuō)

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";

由{}包起來(lái)的多行語(yǔ)句稱(chēng)作塊。這在for,if,while,function等中常常用到。

本文小結(jié)

在任何地方使用var 定義變量都不會(huì)出錯(cuò);

變量可以是任何類(lèi)型

兩種注釋方式

在語(yǔ)句結(jié)束時(shí)不要忘了加分號(hào)。

原文Variables and statements

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86377.html

相關(guān)文章

  • JavaScript 回顧學(xué)習(xí):變量

    摘要:變量的分類(lèi)全局變量可以在任何地方使用的變量局部變量在函數(shù)內(nèi)聲明的變量只在函數(shù)內(nèi)有定義,作用域是局部性的什么時(shí)候使用當(dāng)一個(gè)數(shù)據(jù)需要被反復(fù)使用時(shí),就要先保存在變量中。 第一篇回顧學(xué)習(xí),變量 什么是變量 變量就是在內(nèi)存中刨一個(gè)坑存一個(gè)數(shù)據(jù),再給這個(gè)坑起個(gè)名。為什么要給一個(gè)加引號(hào)呢,因?yàn)镴avaScript是松散類(lèi)型的,即一個(gè)變量可以用來(lái)保存任何類(lèi)型的數(shù)據(jù)。變量的分類(lèi):全局變量:可以在任何地方...

    KitorinZero 評(píng)論0 收藏0
  • JavaScriptthis

    之前關(guān)注了一個(gè)公眾號(hào): JavaScript,里面詳細(xì)描述了this的各種情況,在此總結(jié)一下.只考慮當(dāng)宿主環(huán)境是瀏覽器的時(shí)候,并且處于非嚴(yán)格模式下:this是在運(yùn)行時(shí)綁定的,并不是在編寫(xiě)時(shí)綁定的,this的綁定只取決于函數(shù)的調(diào)用方式.在全局范圍內(nèi),this等價(jià)于window對(duì)象。 console.log(this === window); //true 在全局范圍內(nèi),用var聲明一個(gè)變量和給th...

    tain335 評(píng)論0 收藏0
  • 理解 Javascript 變量作用域

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

    Rocture 評(píng)論0 收藏0
  • 前端_JavaScript

    摘要:為此決定自研一個(gè)富文本編輯器。例如當(dāng)要轉(zhuǎn)化的對(duì)象有環(huán)存在時(shí)子節(jié)點(diǎn)屬性賦值了父節(jié)點(diǎn)的引用,為了關(guān)于函數(shù)式編程的思考作者李英杰,美團(tuán)金融前端團(tuán)隊(duì)成員。只有正確使用作用域,才能使用優(yōu)秀的設(shè)計(jì)模式,幫助你規(guī)避副作用。 JavaScript 專(zhuān)題之惰性函數(shù) JavaScript 專(zhuān)題系列第十五篇,講解惰性函數(shù) 需求 我們現(xiàn)在需要寫(xiě)一個(gè) foo 函數(shù),這個(gè)函數(shù)返回首次調(diào)用時(shí)的 Date 對(duì)象,注意...

    Benedict Evans 評(píng)論0 收藏0
  • 談?wù)?em>JavaScript詞法環(huán)境閉包(一)

    摘要:換句話說(shuō),定義在閉包中的函數(shù)可以記憶它被創(chuàng)建時(shí)候的環(huán)境。詞法環(huán)境的概念定義摘自百科。一個(gè)詞法環(huán)境由一個(gè)環(huán)境記錄項(xiàng)和可能為空的外部詞法環(huán)境引用構(gòu)成。中使用詞法環(huán)境管理靜態(tài)作用域。 一個(gè)資深的同事在我出發(fā)去面試前告誡我,問(wèn)JS知識(shí)點(diǎn)的時(shí)候千萬(wàn)別主動(dòng)提閉包,它就是一個(gè)坑啊!坑啊!啊! 閉包確實(shí)是js的難點(diǎn)和重點(diǎn),其實(shí)也沒(méi)那么可怕,關(guān)鍵是機(jī)制的理解,可以和函數(shù)一起單獨(dú)拿出來(lái)說(shuō)說(shuō),其實(shí)關(guān)于閉包的...

    AlphaWatch 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<