JavaScript中的函式

2021-09-25 04:38:48 字數 2441 閱讀 2001

函式的宣告

方式一:js的**宣告區域和執行區域是一起的,都是在js**的**域中

function 函式名(形參名 1,形參名2…)

function

test1

(a1,a2)

test1(1

,2);

方式二:根據底層都是物件,函式底層也都是物件

var 函式名 = new function(「形參1」,「形參2」…「函式體」);

var test2 =

newfunction

("a1"

,"a2"

,"alert('函式宣告二')"

)test2(1

,2);

方式三:var 函式名 = function(形參1,形參2)

var

test3

=function

(a1,a2)

自執行函式

(

function

(num1,num2))(

5,5)

;

當執行指令碼的時候,自執行函式不用經過呼叫直接執行

函式的引數

js中的函式在呼叫時,形參可以不賦值,不會報錯

js中的函式在呼叫時,形參賦值可以不全賦值,不會報錯,但實參會依次進行賦值

函式的返回值

在js中如果函式有返回值則直接返回,如果沒有返回值則預設返回undefined

var

testreturn

=function()

alert

(testreturn()

);

函式的執行符

js 中的函式執行符其實就是小括號()

列印的時候如果列印的時候是testreturn(),列印出來的應該是該函式執行出來以後的結果以及返回值

如果列印的是testreturn,列印出來的就應該是testreturn這個物件變數

函式作為實參進行傳遞

在js中函式是可以作為實參進行傳遞的,可以實現動態的呼叫函式

function

testobj

(a)var

testparam

=function()

testobj

(testparam)

;

ps:函式開發中常用的傳遞方式

原型和原型鏈

例項物件的 原型__proto__和建構函式的原型prototype指向是相同的

例項物件中的 __proto__原型指向的是建構函式中的原型prototype

例項物件中__proto__是原型,瀏覽器使用的

建構函式中的prototype是原型,程式設計師使用的

原型鏈:是一種關係,例項物件和原型物件之間的關係,關係是通過原型(proto)來聯絡的

[外鏈轉存失敗(img-iwef7zpw-1562836055882)(g:\各種學習筆記\js學習筆記\原型.png)]

原型的物件可以改變

例項物件的原型__proto__指向的是該物件所在的建構函式的原型物件

獲取節點的方法

js獲取標籤節點

document.

getelementbyid()

//通過id獲取節點

document.

getelementsbyclassname()

//通過類名獲取節點

document.

getelementsbytagname()

//通過標籤名字獲取節點

js還支援通過css獲取節點

document.

queryselector()

//獲取選擇器的第乙個節點

document.

queryselectorall()

//獲取所有的節點結果返回第乙個節點

閉包js中的每個函式都相當於是乙個閉包。因為函式生成了乙個區域性作用域,通過巢狀函式的方法獲取到區域性變數,這樣生成的閉包才是乙個可用的閉包

function

addone()

}var getcount =

addone()

; console.

log(

getcount()

);console.

log(

getcount()

);console.

log(

getcount()

);console.

log(

getcount()

);

JavaScript函式中的arguments物件

ecmascript標準中,每個函式都有乙個特殊的內建物件arguments。arguments物件是乙個類array物件 object 用以儲存函式接收到的實參副本。一 內建特性 說它是乙個內建物件是因為我們在建立函式時並沒有定義這個物件 var functest function args fu...

javascript中的eval函式

eval 只有乙個引數,如果傳入的引數不是字串,則直接返回這個引數。否則會將字串當成js 進行編譯,如果編譯失敗則丟擲語法錯誤 syntaxerror 異常。如果編譯成功則開始執行這段 並返回字串中的最後乙個表示式或語句的值 如果最後乙個表示式或語句沒有值,則最終返回undefined。如果字串丟擲...

javaScript中函式的引數

函式不介意傳遞進來多少個引數,也不在乎傳進來引數是什麼資料型別,原因是 ecmascript 中的引數在內部是用乙個陣列來表示的。函式接收到的始終都是這個陣列,而不關心陣列中包含哪些引數 如果有引數的話 在函式體內可以通過 arguments 物件來訪問這個引數陣列,從而獲取傳遞給函式的每乙個引數,...