~ 函式 function 也是乙個物件,函式可以封裝一些功能(**),在需要時可以執行這些功能(**)。函式中可以儲存一些**在需要的時候呼叫。
~ 建立乙個函式物件。可以將要封裝的**以字串的形式傳遞給建構函式: var fun = new function ("console.log('hello');");。該**在函式呼叫時執行。呼叫函式 語法:函式物件()。
~ 使用函式宣告來建立乙個函式。語法: function 函式名([形參1,形參2.。。形參n.....] )
~ 使用函式表示式來建立乙個函式: var 函式名 = function ( )
~ 可以在函式的( )來指定乙個或多個形式引數(形參),多個形參用逗號隔開,宣告形參就相當於在函式內部盛行了對應的變數。 function sum (a, b) 。在呼叫函式時,可以在( )中指定實參(實際引數),實參將會賦值給函式中對應的形參。sum (1, 2); 。
~ 呼叫函式時解析器不會檢查實參的型別和數量。所以要注意是否有可能會接受到非法的引數,有可能需要進行檢查。多餘的實參不會被賦值。如果實參的數量小於形參的數量,則沒有對應實參的形參將是 undefined 。
~ 使用 return 來設定函式的返回值。return 的值將會作為函式的執行結果返回。定義乙個變數來接收該結果。
例:function sum (a, b, c) var result = sum (4, 7, 8); console.log ("result = "+result);。在函式裡,return 後的語句不執行。returen 後面不跟任何值或不寫 return,相當於返回 undefined。
~ 建立乙個函式,可以在控制台中輸出乙個人的資訊:function sayhello (name, age, gender, address)
或者:function sayhello (obj) var obj = ; 。
~ 實參可以是乙個物件,也可以是乙個函式。
function fun(a) fun(sayhello);
function fun3 ()
return fun4;
}a = fun3 ();
a ();
結果:彈出 我是fun4 。
~ 用括號標識匿名函式是乙個整體。 (function () ) ();
立即執行函式:函式定義完,立即被執行。往往只會執行一次。
~ 物件的屬性值也可以是函式。
~ 函式也可以成為物件的屬性。如果乙個函式作為乙個物件的屬性儲存,那麼我們稱這個函式是這個物件的方法。呼叫函式則是呼叫對物件的方法。obj.sayname = fun ( )
var obj2 =
}obj2.sayname ();
列印 「豬八戒」。
~ 列舉屬性:使用 for 。。in 語句。語法: for (var 變數 in 物件) {}。有幾個屬性,迴圈幾次。每次執行時,會將物件中的屬性名字賦值給變數。
for (var n in obj)
~ [ ] 可以傳變數。
~ 作用域:指乙個變數作用的範圍。在 js 中有兩種,全域性作用域、函式作用域。
全域性作用域:直接編寫在script標籤中的 js **,都在全域性作用域。頁面開啟時建立,頁面關閉時銷毀。在全域性作用域中有乙個全域性物件 window ,它代表乙個瀏覽器的視窗,由瀏覽器建立,我們可以直接使用。在全域性作用域中,建立的變數都會作為 window 物件的屬性儲存。建立的函式都會作為 window 物件的方法儲存。
全域性作用域中的變數都是全域性變數。在頁面的任意部分都可以訪問到。
function fun ()
fun ();
console.log (a);
返回:a is not defined 。
~ 變數的宣告提前:使用 var 關鍵字宣告的變數,會在所有的**執行之前被宣告。但是不會賦值。
~ 函式的宣告提前: 使用函式宣告形式建立的 function 函式 ( ) 。會在所有的**執行之前就被建立 function fun () {}。可以在函式宣告前來呼叫函式。使用函式表示式宣告的函式 var function = fun (),不會被提前宣告,所以不能提前呼叫。
~ 函式作用域:呼叫函式時建立函式作用域,函式執行完畢後,函式作用域被銷毀。每呼叫一次,建立乙個新的函式作用域。當在函式作用域中操作乙個變數時,先在函式作用域中尋找。如果有就直接使用,沒有則向上一級作用域中尋找(上一級也可能是函式作用域)。
~ 在函式中要訪問全域性變數,可以使用 window 物件。
~ 在函式作用域中也有宣告提前的特性。使用 var 關鍵字宣告的變數,會在函式中所有的**執行之前被宣告,但不賦值。使用函式宣告也可在執行之前。
~ 在函式中,不使用 var 宣告的變數都會成為全域性變數。
~ 定義形參就相當於在函式作用域中宣告了變數:
var e = 23;
function fun6 (e)
fun6 ( );
彈出 undefined 。
~ 函式作用域中變數的改變不會影響全域性作用域中的變數
var a = 123;
function fun ()
fun ( );
alert (a);
彈出 123;456 。
var a = 123;
function fun (a)
fun ( );
alert (a);
彈出 undefined;123 。
~ debug 。
JavaScript 學習筆記 p17 25
自增 使變數在自身的基礎上增加1,原變數值立即自增1。後加加 a 前加加 a a 原值。a 新值。自減 變數在自身的基礎上減1。後剪剪 a 前剪剪 a a 原值。a 新值。3 種邏輯運算子 非 對值進行非運算 返回值都變成布林型別 true false,false true 與 對符號兩側的值進行與...
Javascript 學習筆記
如果在生成的html裡面有事件需要傳遞帶特殊字元的引數,處理如下 singletext 輸入 1.singletext value.escapehtml 為 將html編碼 2.singletext value.escapehtml inspect 為 3.在 jsdebugtext innerht...
javascript學習筆記
視窗操作 1改變視窗的位置 window.location 2視窗的歷史操作 previous 3建立新的視窗 window.open url 視窗名稱 視窗特徵字元 細節 不能換行寫 視窗特徵 width,height,yes,no munubar,status,scrollbars,resiza...