JavaScript學習(二)基礎知識 變量 常量 數據類型

Hello, world!

“script” 標籤

JavaScript 程序可以使用 <script> 標籤插入到 HTML 的任何地方。

<!DOCTYPE HTML>
<html>

<body>

  <p>script 標籤之前...</p>

  <script>
    alert('Hello, world!');
  </script>

  <p>...script 標籤之後</p>

</body>

</html>

<script> 標籤中包裹了 JavaScript 代碼,當瀏覽器遇到 <script> 標籤,代碼會自動運行。

外部腳本

如果你有大量的 JavaScript 代碼,我們可以將它放入一個單獨的文件。

腳本文件可以通過 src 屬性添加到 HTML 文件中。

<script src="/path/to/script.js"></script>

這裏,/path/to/script.js 是腳本文件的絕對路徑(從站點根目錄開始)。

也可以提供相對於當前頁面的相對路徑。比如,src="script.js" 意思是來自當前文件夾的 "script.js" 文件。

我們還可以提供一個完整的 URL 地址,例如:

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.2.0/lodash.js"></script>

總結 

  • 我們可以使用一個 <script> 標籤將 JavaScript 代碼添加到頁面中。
  • typelanguage 屬性不是必需的。
  • 外部的腳本可以通過 <script src="path/to/script.js"></script> 這種方式插入。

變量

一個變量

一個 變量 是數據的“命名存儲”。我們可以使用變量來保存商品、訪客和其他信息。

在 JavaScript 中創建一個變量,我們需要用到 let 關鍵字。

下面的語句創建(換句話說,聲明或者定義)了一個名稱爲“message”的變量:

let message;

現在,通過賦值操作符 = 爲變量添加一些數據:

let message;
message = 'Hello!';

alert(message); // 顯示變量內容

var 而不是 let

var message = 'Hello';

var 關鍵字與 let 大體相同,也用來聲明變量,但稍微有些不同,也有點“老派”。

 

變量命名

JavaScript 的變量命名有兩個限制:

  1. 變量名稱必須僅包含字母,數字,符號 $_
  2. 首字符必須非數字

區分大小寫

命名爲 appleAppLE 的變量是不同的兩個變量。

允許非英文字母,但不推薦

保留字

單詞 letclassreturnfunction 被保留。


常量

聲明一個常數(不變)變量,可以使用 const 而非 let。使用 const 聲明的變量稱爲“常量”。它們不能被修改,嘗試這樣做就會造成錯誤:

const myBirthday = '18.04.1982';

myBirthday = '01.01.2001'; // 錯誤,不能對常量重新賦值

大寫形式的常數

這些常量使用大寫和下劃線命名。

const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";

// ...當需要選擇一個顏色
let color = COLOR_ORANGE;
alert(color); // #FF7F00

好處:

  • COLOR_ORANGE"#FF7F00" 更容易記憶。
  • 比起 COLOR_ORANGE 而言,"#FF7F00" 更容易輸錯。
  • 閱讀代碼時,COLOR_ORANGE#FF7F00 更有含義。

 

總結

我們可以聲明變量來存儲數據。可以通過使用 varlet 或者 const 來完成。

  • let – 新時代的變量聲明方式。Chrome(V8)中代碼必須開啓嚴格模式以使用 let
  • var – 舊時代的變量聲明方式。一般情況下,我們不會使用它。但是,我們會在 舊時的 "var" 章節介紹 varlet 的微妙差別,以防你需要它們。
  • const – 類似於let,但是變量的值無法被修改。

變量應當以一種容易理解變量內部是什麼的方式進行命名。

 


數據類型

number 類型

number 類型用於整數和浮點數

數字有很多操作,比如,乘法 *、除法 /、加法 +、減法 - 等等。

除了常規的數字,還包括所謂的“特殊數值”也屬於這種類型:Infinity-InfinityNaN

let n = 123;
n = 12.345;

alert( 1 / 0 ); // Infinity

alert( "not a number" / 2 ); // NaN, 這樣的除法是錯誤的

alert( "not a number" / 2 + 5 ); // NaN

string 類型

JavaScript 中的字符串必須被包含在引號裏面。沒有 character 類型

在 JavaScript 中,有三種包含字符串的方式。

  1. 雙引號: "Hello".
  2. 單引號: 'Hello'.
  3. 反引號: `Hello`.

雙引號和單引號都是“簡單”引用,在 JavaScript 中兩者並沒有什麼差別。

反引號是功能擴展的引用,允許通過 ${…},將變量和表達式嵌入到字符串中

let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed ${str}`;

let name = "John";

// embed a variable
alert( `Hello, ${name}!` ); // Hello, John!

// embed an expression
alert( `the result is ${1 + 2}` ); // the result is 3

boolean 類型(邏輯類型)

boolean 類型僅包含兩個值:truefalse

let nameFieldChecked = true; // yes, name field is checked
let ageFieldChecked = false; // no, age field is not checked

“null” 值

特殊的 null 值不屬於上述任何一種類型。

它構成一個獨立的類型,只包含 null 值:

let age = null;

相比較於其他語言,JavaScript 中的 null 不是一個“對不存在對象的引用”或者“null 指針”。

僅僅是一個含義爲“無”、“空”或“值未知”的特殊值

上面的代碼表示,由於某些原因,age 是未知的。

“undefined” 值

特殊值和 null 一樣,自成類型。

undefined 的含義是 未被賦值

如果變量被聲明,而未被賦值,那麼它的值就是 undefined

let x;

alert(x); // 彈出 "undefined"

typeof 運算符

typeof 運算符返回參數的類型。當我們想要分別處理不同類型值的時候,或者簡單地進行檢驗,就很有用。

它支持兩種語法形式:

  1. 作爲運算符:typeof x
  2. 函數形式:typeof(x)
typeof undefined // "undefined"

typeof 0 // "number"

typeof true // "boolean"

typeof "foo" // "string"

typeof Symbol("id") // "symbol"

typeof Math // "object"  (1)

typeof null // "object"  (2)

typeof alert // "function"  (3)

總結

JavaScript 中有七種基本的數據類型。

  • number 用於任何類型的數字:整數或者浮點數。
  • string 用於字符串。一個字符串可以包含一個或多個字符,所以沒有單獨的單字符類型。
  • boolean 用於 truefalse
  • null 用於未知的值 —— 只有一個 null 值的獨立類型。
  • undefined 用於未定義的值 —— 只有一個 undefined 值的獨立類型。
  • object 用於更復雜的數據結構。
  • symbol 用於唯一的標識符。

typeof 運算符可以查看變量的類型。

  • 兩種形式:typeof x 或者 typeof(x)
  • 返回的類型的字符串,比如 "string"
  • null 返回 "object" —— 這是語言中的一個錯誤,實際上它並不是一個對象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章