js函式詳解

2022-09-20 04:54:07 字數 2372 閱讀 8769

#*****= 函式*****

├── 概述

│ ├── 函式的宣告

│ ├── 函式的重複宣告

│ ├── 圓括號運算子,return語句和遞迴

│ ├── 第一等公民

│ ├── 函式名的提公升

├── 函式的屬性和方法

│ ├── name屬性

│ ├── length屬性

│ ├── tostring()

├── 函式的作用域

│ ├── 定義

│ ├── 函式內部的變數提公升

│ └──函式本身的作用域

#***************

##概述

- 函式的宣告

- function命令, function命令宣告的**區塊就是乙個函式

1

```2

function

print(param)

5 ```

- 函式表示式,將乙個匿名函式賦值給乙個變數,這種方式function後面沒有函式名

1

```2

var print = function

(param)

3 ```

- function建構函式,function接收的所有引數中,最後乙個是函式體,如果只有乙個引數,那麼這個引數就是函式體。

1

```2

var foo = new

function

(3 'x',

4 'y',

5 'return x+y'6)

7 ```

- 重複宣告

- 乙個函式被多次宣告,後面的就會覆蓋前面的,前一次宣告在任何時候都是無效的。

- 圓括號運算子,return語句和遞迴

- 在函式名後加圓括號會呼叫函式時,圓括號可以傳入引數

- return表示返回,如果return語句後還有其他語句也不執行了

- 函式可以呼叫自身,稱之為遞迴

- 第一等公民

- js將函式看做一種值,與其他值(數值,字串,布林值等等)地位相同。凡是可以使用值得地方,就能使用函式。函式只是乙個可

以執行的值

- 函式名提公升

- js將函式名視為變數名,用function宣告函式時,整個函式也會想變數宣告一樣,被提到**頭部

##函式的屬性和方法

- name屬性

- 函式的name返回函式的名字。

1

```2

var foo = function

() {};

3function

foo2() {};

4var foo3 =functon print(){};

5 foo.name //

foo6 foo2.name //

foo2

7 foo3.name //

print

8 ```

- length屬性

- length屬性返回函式預期傳入的引數個數

1

```2

function

print(a,b) {};

3 print.length //

24 ```

- tostring()

- func.tostring()會返回乙個字串是這個函式的原始碼

- 對於原生函式返回的內容是 function()

#函式的作用域

- 定義

- 對於頂層函式來講,函式外部宣告的變數就是 全域性變數 ,它可以在函式內部讀取

- 函式內部定義的變數,函式外部無法讀取,稱為 區域性變數 ,它在函式內部可以覆蓋同名全域性變數

- 函式內部變數的提公升

- 與全域性作用域一樣,函式作用域內部也會產生變數提公升作用,var宣告的變數不管在任何位置都會被提至函式頭部

1

```2

var a = 1;

3var x = function

() ;67

function

f()

1112 f() //

1 函式x是在f外層宣告的,所以它的作用域繫結外層,它無法獲取到f內部變數a的value

13 ```

1

```2

function

foo()

7return

bar;8}

910var x = 2;

11var f =foo();

12 f() //

1 bar繫結的作用域是foo,所以它接收的變數是foo了裡面的

13 ```

JS函式詳解

對於js來說,我們可以把函式理解為任意一段 放在乙個盒子裡,在我們想要讓這段 執行的時候,直接執行這個盒子裡的 就行。專業一點來講 js函式就是由事件驅動的可執行課重複只用的 塊。宣告式function fn 這個function就宣告了乙個名為fn的函式 匿名函式 分為兩種情況 賦值式的原理和我們...

j s函式詳解(2)

函式宣告 function fn 被宣告的函式不會直接執行,他們被儲存供稍後使用,被呼叫時執行 函式表示式 var x function a,b 在變數中儲存函式表示式後,此變數可用作函式 var x function a,b var z x 2,3 這個函式實際上是乙個匿名函式,沒有函式名稱的函式...

js建構函式詳解

常用的建構函式 例如 function student name,age,score var pyq newstudent pyq 18 0 pyq.exam 我叫pyq今年18歲這次考了0分1 var pyq 建立了乙個繼承自 student.prototype 的新物件。2 pyq.proto ...