JavaScript--基礎(chǔ)概念

基礎(chǔ)概念

標(biāo)識(shí)符

所謂標(biāo)識(shí)符是指變量渔肩、函數(shù)贬墩、屬性的名字陈症,或者函數(shù)的參數(shù)。標(biāo)識(shí)符的書寫有幾個(gè)特征

  1. 區(qū)分大小寫
  2. 第一個(gè)字符必須是字母震糖、下劃線(_)录肯、或者是$
  3. 后面的可以是字母、數(shù)字吊说、下劃線论咏、$

命名規(guī)約

  1. 使用是實(shí)際意義的單詞
  2. 變量使用駝峰規(guī)則,第一個(gè)單詞首字母小寫颁井,后面單詞首字母大寫
  3. 變量使用名詞厅贪,方法函數(shù)使用動(dòng)詞開頭,常量全部用大寫字母雅宾,函數(shù)創(chuàng)建對(duì)象首字母大寫
var firstName;
var isSmall;
var hasClass;
var PI;
var MAX_COUNT;
function getName(){}
function Person(){}

變量

在計(jì)算機(jī)科學(xué)中养涮,變數(shù)是指一個(gè)表示某個(gè)存在內(nèi)存中的值的名稱。

計(jì)算機(jī)程序中的變量是指在程序的運(yùn)行過程中隨時(shí)可以發(fā)生變化的量眉抬。

變量來源于數(shù)學(xué)贯吓,是計(jì)算機(jī)語言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問蜀变。在指令式語言中悄谐,變量通常是可變的;但在純函數(shù)式語言(如Haskell)中库北,變量可能是不可變(immutable)的爬舰。在一些語言中们陆,變量可能被明確為是能表示可變狀態(tài)、具有存儲(chǔ)空間的抽象(如在Java和Visual Basic中)情屹;但另外一些語言可能使用其它概念(如C的對(duì)象)來指稱這種抽象坪仇,而不嚴(yán)格地定義“變量”的準(zhǔn)確外延。

在JavaScript中變量是用來保存值的占位符垃你,定義變量的時(shí)候要使用var運(yùn)算符椅文, 后面跟一個(gè)作為名稱的標(biāo)識(shí)符即可

var message;

弱類型

在一些編譯語言(C、Java蜡镶、C#)等變量的類型是固定的雾袱,在聲明變量的時(shí)候就要標(biāo)識(shí)其類型,在程序執(zhí)行前編譯階段變量的類型就確定了官还,而且不能改變芹橡,我們稱之為強(qiáng)類型

int a = 2;
string b = "hello";

一些常見的解釋型語言(PHP、JavaScript)等變量的類型是松散的望伦,一個(gè)變量可以用來保存任何類型的數(shù)據(jù)林说,變量的類型不是由聲明時(shí)決定(聲明的時(shí)候只是用了var運(yùn)算符),而是在程序執(zhí)行階段由其值的類型決定屯伞,隨著程序運(yùn)行其值類型改變腿箩,變量類型也會(huì)發(fā)生改變

var message = 1; //message 類型就是數(shù)字
message = "hello world!"; //message 類型變?yōu)樽址?

需要強(qiáng)調(diào)的一點(diǎn):弱類型語言不是沒有數(shù)據(jù)類型!

語句

語句(statement)是為了完成某種任務(wù)而進(jìn)行的操作劣摇,比如下面就是一行賦值語句

var a = 1 + 2;

這條語句先用var運(yùn)算符珠移,聲明了變量a,然后將 1+2 的運(yùn)算結(jié)果賦值給變量a末融。

JavaScript中語句以;結(jié)束钧惧,一行可以包含多條語句,如果省略分號(hào)不會(huì)產(chǎn)生語法錯(cuò)誤勾习,解釋器會(huì)自動(dòng)判斷語句結(jié)束

var sum = 1 + 2

var diff = 3 - 4;

雖然分號(hào)不是必須浓瞪,但是強(qiáng)烈建議大家要加上,這樣可以保證程序健壯性和可讀性巧婶,在js壓縮等場景不會(huì)發(fā)生意外錯(cuò)誤

JavaScript解釋器在基本情況下會(huì)從上到下逐句執(zhí)行語句乾颁,但是有個(gè)變量提升的特性

變量提升

JavaScript引擎的工作方式是,先解析代碼艺栈,獲取所有被聲明的變量英岭,然后再一行一行地運(yùn)行。這造成的結(jié)果眼滤,就是所有的變量的聲明語句巴席,都會(huì)被提升到代碼的頭部,這就叫做變量提升

我們寫了一個(gè)賦值語句

var a = 2;

實(shí)際上執(zhí)行過程是解釋器在未執(zhí)行的時(shí)候先解析出變量聲明诅需,然后給他初始值undefined漾唉,然后才逐句執(zhí)行程序

var a;
a = 2;

這樣看起來沒什么區(qū)別,但是在多語句的情況下會(huì)有差別堰塌,我們知道一個(gè)變量如果不存在我們就使用會(huì)報(bào)錯(cuò)

console.log(xxx); // Uncaught ReferenceError: xxx is not defined

我們?cè)谑褂靡粋€(gè)變量之前必須聲明變量赵刑,但是由于變量提升,我們?nèi)绻暶髁俗兞砍⌒蹋词乖诼暶髡Z句前使用也是可以的般此,只不過其值是初始值undefined

console.log(xxx); // undefined
var xxx = 2;

注釋

并不是所有的語句都會(huì)執(zhí)行,我們可以通過注釋功能讓js引擎忽略部分語句牵现,這個(gè)功能經(jīng)常用來解釋我們的部分語句铐懊,和讀書做標(biāo)注一樣

Javascript提供兩種注釋:一種是單行注釋,用//起頭瞎疼;另一種是多行注釋科乎,放在/ 和 /之間。

//為變量賦值
var a = 1; //賦值成功

/*
    下面定義個(gè)函數(shù)
    至于什么是函數(shù)
    且聽下回分解
*/

function getName(id){
    return 'Byron';
}



關(guān)鍵字和保留字

關(guān)鍵字是JavaScript引擎會(huì)用到的一些字贼急,我們標(biāo)識(shí)符不能再使用茅茂,比如定義變量的關(guān)鍵字var,關(guān)鍵字有

break else new var
case finally return void
catch for switch while
continue function this with
default if throw
delete in try
do instanceof typeof

除了這些不能用作標(biāo)識(shí)符的關(guān)鍵字太抓,js還規(guī)定了一些不能用作標(biāo)識(shí)符的保留字空闲,這些字符沒有什么意義,但是未來會(huì)用到

abstract enum int short
boolean export interface static
bye extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
doubler import public
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末走敌,一起剝皮案震驚了整個(gè)濱河市碴倾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掉丽,老刑警劉巖跌榔,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異机打,居然都是意外死亡矫户,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門残邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皆辽,“玉大人,你說我怎么就攤上這事芥挣∏疲” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵空免,是天一觀的道長空另。 經(jīng)常有香客問我,道長蹋砚,這世上最難降的妖魔是什么扼菠? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任摄杂,我火速辦了婚禮,結(jié)果婚禮上循榆,老公的妹妹穿的比我還像新娘析恢。我一直安慰自己,他們只是感情好秧饮,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布映挂。 她就那樣靜靜地躺著,像睡著了一般盗尸。 火紅的嫁衣襯著肌膚如雪柑船。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天泼各,我揣著相機(jī)與錄音鞍时,去河邊找鬼。 笑死历恐,一個(gè)胖子當(dāng)著我的面吹牛寸癌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弱贼,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蒸苇,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了吮旅?” 一聲冷哼從身側(cè)響起溪烤,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎庇勃,沒想到半個(gè)月后檬嘀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡责嚷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年鸳兽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罕拂。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揍异,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爆班,到底是詐尸還是另有隱情衷掷,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布柿菩,位于F島的核電站戚嗅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜懦胞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一替久、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧医瘫,春花似錦侣肄、人聲如沸旧困。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吼具。三九已至僚纷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拗盒,已是汗流浹背怖竭。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陡蝇,地道東北人痊臭。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像登夫,于是被迫代替她去往敵國和親广匙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容