關(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í)符
所謂標(biāo)識(shí)符是指變量、函數(shù)藤为、屬性的名字怪与,或者函數(shù)的參數(shù)。標(biāo)識(shí)符的書寫有幾個(gè)特征
- 區(qū)分大小寫
- 第一個(gè)字符必須是字母缅疟、下劃線(_)分别、或者是$
- 后面的可以是字母、數(shù)字存淫、下劃線耘斩、$
命名規(guī)約
- 使用是實(shí)際意義的單詞
- 變量使用駝峰規(guī)則,第一個(gè)單詞首字母小寫桅咆,后面單詞首字母大寫
- 變量使用名詞括授,方法函數(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)存中的值的名稱。
變量來源于數(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;
弱類型和強(qiáng)類型
在一些編譯語言(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壓縮等場(chǎng)景不會(huì)發(fā)生意外錯(cuò)誤
JavaScript解釋器在基本情況
下會(huì)從上到下逐句執(zhí)行語句
隐绵,但是有個(gè)變量提升的特性
變量提升
JavaScript引擎的工作方式是之众,先解析代碼,獲取所有被聲明的變量依许,然后再一行一行地運(yùn)行棺禾。這造成的結(jié)果,就是所有的變量的聲明語句峭跳,都會(huì)被提升到代碼的頭部膘婶,這就叫做變量提升
注釋
兩種注釋:一種是單行注釋,用//起頭蛀醉;另一種是多行注釋悬襟,放在/ 和 /之間。
//為變量賦值
var a = 1; //賦值成功
/*
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 |
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 |