Javascript基礎知識 - 基礎部分

1. 基礎部分

1.1 標識符

指變量、函數、屬性的名字,或者函數的參數
規則:
  1. 第一個字符必須是字母、下劃線、美圓符號
  2. 其餘字符能夠是字母、下劃線、美圓符號或數字
  3. ECMAScript標識符采用駝峯命名法
  4. 不能用作標識符的有:關鍵字、保留字、true、false、null

1.2 註釋

ECMAScript使用C風格註釋
兩種註釋方式:
  1. 單行註釋

//兩個左斜槓正則表達式

  1. 塊級註釋

/*瀏覽器

  • 註釋內容,此行首的星號可省略,通常爲提升註釋可讀性
    */

1.3 語句

ECMAScript中的語句以一個分號(;)結束,若是省略分號,則由解釋器肯定語句的結尾

var sum = a + b //即便沒有分號,也是有效語句,可是不推薦
var diff = a - b; //有效的語句,推薦函數

可使用C風格的語法,把多條語句組合到一個代碼塊中,即放入到花括號{}中,例如:

if(test){
    console.log(test);
}this

1.4 關鍵字 和 保留字

ECMA-262 肯定了一組具備特殊用途的關鍵字,這些關鍵字可用於語句控制或者一些特殊指令,關鍵字不能用於標識符 以下:

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

ECMA-262 還定義了一組保留字,一樣不可用於標識符,這組保留字留做未來使用,以下:

abstract enum int short boolean export interface static
byte extends long super char final native synchronized
class float package throws const goto private transient
debugger implements protected volatile double import publiccode

在第五版非嚴格模式下運行時,保留字縮減爲一下這些:

class enum extends super const export import對象

在第五版嚴格模式下,還對如下保留字作了限制:

implements package public interface
private static let protected yieldip

let 和 yield是第五版新增保留字,其他都是第三版

第五版中,雖然不能使用關鍵字和保留字做爲標識符,可是用作對象的屬性名。 但不推薦這樣作,以便於未來更好的與ECMAScript版本兼容。作用域

1.5 變量

ECMAScript的變量是鬆散類型
定義變量時要使用var操做符,例如:var message; 這裏定義了一個名爲message的變量,該變量能夠用於保存任何值。
ECMAScript也支持直接初始化變量,所以在聲明變量的同時就能夠作賦值操做,例如:var message = 'Hi';
也能夠更改變量類型,以下:
         var message = 'Hi'; //聲明message爲字符串變量
         message = 100; //更改message變量類型爲數字,有效的操做,可是不推薦
須要注意的是,var聲明的變量將成爲該變量所在做用域的局部變量,若是該變量是在一個函數內定義,那麼變量在函數執行完畢退出後就會被銷燬,例如:字符串

function test(){
    var message = 'Hi'; //局部
}
test();
console.log(message); //錯誤的

上面的console輸出會報錯,但若是省略var,直接聲明message,那麼該變量則爲全局變量,可是不建議這樣作,由於過多的全局變量會形成難以控制而致使全局變量污染。
咱們也能夠用一條語句定義多個變量,以下:

var message = 'Hi',
      found = false,
      age = 32;

1.6 數據類型

ECMAScript中有五種簡單數據類型,也稱做基本數據類型:

  • Undefined
  • Null
  • Boolean
  • String
  • Number

還有一種複雜數據類型:

  • Object

Object本質上是由一組無序鍵值對組成。ECMAScript不支持任何形式的自定義類型,全部值最終都是上述六種類型之一。由於ECMAScript數據類型的動態性這個特色,也確實沒有定義其餘更多類型的必要了。

1.7 使用typeof檢測數據類型

typeof是操做符,不是函數

返回值是如下某個字符串

  • "undefined"
  • "boolean"
  • "string"
  • "number"
  • "object"
  • "function"

有時候,typeof會返回一些比較迷惑人的但正確的值,好比typeof null,會返回"object", 由於特殊值null被認爲是一個空對象引用,Safari5及以前版本、Chrome7及以前版本對正則表達式調用typeof操做符會返回"function", 而其餘瀏覽器會返回"object"。

相關文章
相關標籤/搜索