JavaScript高級程序設計筆記(3)_基本概念

語法

借鑑了C以及類C語言

區分大小寫

一切變量函數名和操作符都是區分大小寫的(例:typeof是關鍵字但是typeOf不用)

標識符

標識符是變量,函數,屬性,或者函數的參數。

第一個字符必須一個字母,下劃線以及$

其他可以是字母,下劃線,數字或者$

標識符中的字母也可以包含擴充的ASCII或者Unicode字符,採用駝峯大小寫格式

嚴格模式“use strict”

數據類型

5種基本數據類型:Undefined,Null,Boolean,Number和String

1種複雜數據類型:Object

typeof是一個操作符而不是函數

null被認爲是一個空的對象引用

undefined類型

object類型

Constructor:保存着用於創建當前對象的函數,對於前面的例子而言,構造函數Object()

hasOwnProperty(propertyName):用於檢測給定屬性在當前對象實例中(而不是在實例的原型中是否存在)

propertyName是字符串

isPropertyOf(object):用於檢測傳入對象是否是另一個對象的原型

propertyIsEnumerable(propertyName):用於檢測給定的屬性是否能夠使用for-in語句來枚舉

toLocalString():返回對象的字符串表示,該字符串與執行環境的地區對應

toString():返回對象的字符串表示

valueOf():返回對象的字符串數值或者布爾值表示

相等操作符

相等和不相等——先轉換再比較

== &!=兩個操作符都會先轉換操作數(強制轉型),然後再比較相等性。

轉換包括:布爾值轉數值(false-0,true-1),字符串轉數值,對象的valueOf()

進行比較之前其中

null和undefined是相等的null==undefined

比較相等性之前,不能將null和undefined轉換成其他值

NaN不和任何操作數相等

兩個都是對象那麼看是不是同一個對象。

全等和不全等——僅比較而不轉換

數據類型也要比

語句

if,do-while,while,for,switch

for-in

for(property in expression) statement

舉例:

for(var propName in window){

document.write(propName);

}

使用for-in循環顯示BOM中window對象的所有屬性,其中var爲了保證局部變量。

!如果是null或者undefined會拋出錯誤或者ES5之後只是不執行循環體

label語句

label:語句

一般都和for等循環語句配合使用

break和continue語句

break語句會立即退出循環,強制繼續執行循環後面的語句

continue語句也是立即退出,但是退出後會從循環的頂部繼續執行。

with語句

with(expression) statement;

with語句作用是將代碼的作用域設置到一個特定的對象中

目的:簡化多次編寫同一個對象的工作


函數

調用函數:函數名(參數);

位於return語句之後的任何代碼不會執行,遇到return就會執行後停止並退出。

一個函數可以有多個return,return語句可以不帶任何返回值(停止後會返回undefined)

嚴格模式對函數有一些限制:不能把函數和參數命名爲eval或者arguments,不能出現兩個命名參數同名情況。

理解參數

ECMAScript中的參數在內部是用一個數組來表示的,函數接受到的是這個數組。所以定義的函數接受兩個參數也可以傳遞一個或者三個等等。

函數體內可以通過arguments對象來訪問這個參數數組,從而獲取傳遞給參數的每一個參數。

ECMAScript中的所有參數傳遞的都是值,不可能通過引用傳遞參數。

沒有重載

ECMAScript沒有函數簽名(接受的參數的類型和數量),因爲其參數包含另個或者多個值的數組來表示的,就做不到重載。


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