JavaScript 學習筆記 p51 60

2021-09-22 01:46:13 字數 2823 閱讀 2599

~ 函式 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...