Javascript語法和類型

前端7班_leec

javascript-type-relationships

Javascript語法借鑒于 Java,Awk,Perl,Python,并且是大小寫敏感的,使用Unicode字符集編碼。在Javascript中,指令叫做語句,語句用分號;隔開,語句可以不加分號(不推薦)。

注釋

注釋的規(guī)則跟C++和其他語言類似,單行注釋用//,多行注釋通過/*注釋內(nèi)容*/

注釋

聲明

** var **
聲明一個變量,在聲明變量的同時可以賦值(可選)
** let **
聲明一個塊級作用域局部變量,可以賦初始值(可選)
** const **
聲明一個只讀的命名常量

變量

變量作為引用值的一個標(biāo)識符(符號),標(biāo)識符遵循以下規(guī)則:

以字母、下劃線或者$符號開頭,可以使用Unicode字符集;標(biāo)識符大小寫敏感,即foo、Foo、fOo是不同的標(biāo)識符

聲明變量

你可以通過以下方式聲明變量:

  • 使用關(guān)鍵字var, 例如:var x = 42;這種方式用來聲明全局變量和局部變量;
  • 簡單地直接賦值,如:x = 42; 這種方式聲明了一個全局變量(不推薦使用);
  • 使用關(guān)鍵字let,如:let y = 13,被用來聲明一個塊級作用域局部變量;

使用var或者let進(jìn)行變量聲明時沒有賦初始值,變量將會得到undefined值,獲取未定義變量的值將報(bào)錯(thrown ReferenceError
exception),如:

var a; console.log("The value of a is " + a); // logs "The value of a is undefined" console.log("The value of b is " + b); // throws ReferenceError exception

在數(shù)值計(jì)算中,undefined值參與運(yùn)算將被轉(zhuǎn)為NaN:

var a; a + 2; // Evaluates to NaN

在數(shù)值計(jì)算中,null值參與運(yùn)算將被轉(zhuǎn)為0:

var a = null; a + 2; // Evaluates to 2

變量作用域

在函數(shù)作用域外面定義變量,將得到全局變量,在函數(shù)內(nèi)定義變量將得到局部變量。在ES6以前Javascript沒有塊級作用域,使用let聲明變量將得到塊級作用域局部變量;

if (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined

變量提升####

變量提升:引用其后的變量聲明不報(bào)錯,聲明的變量被提升到函數(shù)開頭或者作用域起始位置,被提升的變量會返回undefined值:


variable hoisting

因?yàn)樽兞刻嵘衯ar聲明語句應(yīng)該盡可能放在函數(shù)定義的頂部

全局變量

事實(shí)上,全局變量是全局對象的屬性,在瀏覽器中,全局對象是window,所以你能通過window.variable調(diào)用。

常量

使用關(guān)鍵字const定義常量,定義常量必須初始化,其作用域跟let一樣,不能跟函數(shù)或者變量重名:

declare a constant with the same name as a function or variable

數(shù)據(jù)結(jié)構(gòu)和類型

數(shù)據(jù)類型

最新的ECMAScript標(biāo)準(zhǔn)定義了7種數(shù)據(jù)類型:

  • 6種基本數(shù)據(jù)類型:
    • Boolean. true和false;
    • null.
    • undefined.
    • Number.
    • String.
    • Symbol.(ES6新類型)
  • Object對象

數(shù)據(jù)類型比較

Javascript是動態(tài)類型語言,聲明變量時不用指定類型。
在數(shù)值計(jì)算中,+運(yùn)算符的問題在于它可能有兩種含義。如果把它用在數(shù)字上,它意味著把兩個數(shù)字相加,但是如果把它用在字符串上,它意味著把兩個字符串連接或者拼合在一起。Javascript處理字符串連接的優(yōu)先級高于數(shù)字求和。 Javascript從左至右遍歷+運(yùn)算符,并分別根據(jù)它們的含義決定是相加還是連接。

x = "The answer is " + 42 // "The answer is 42" y = 42 + " is the answer" // "42 is the answer" "37" - 7 // 30 "37" + 7 // "377"

字面量

Array 字面量###

var coffees = ["French Roast", "Colombian", "Kona"];

額外的逗號

Array字面量中最后的逗號會被忽略,其他空位上的分號會被解析成undefined,最好顯式聲明undefined:


Extra commas in array literals

本文翻譯整理自:
MDN **轉(zhuǎn)載請注明出處 **

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容