2018 9 14 關於對JS函式的理解的總結

2021-08-28 03:09:50 字數 1725 閱讀 5996

-----------------------分割線-------------------------

首先在使用函式的時候要了解函式的三要素:

1.首先先用注釋說明函式的需求

2.然後在函式中寫明要傳的引數

3.最後寫清楚返回值

js函式可分為:

//無引數無返回值

//有引數有返回值

//有引數無返回值、

//無引數有返回值

關於返回值問題:

//如果return 後面跟內容了,就返回return後面的內容

//如果return後面沒有跟內容就返回undefined

//如果函式後面沒有寫return就返回undefined

關於引數問題

//函式在進行呼叫的時候,會把實參的數 複製乙份傳遞給getsum函式

//在js函式裡面是可以形參和實參個數不一樣的。

在其他語言中有過載的概念但是在js裡面是沒有過載的概念的:

//過載:函式名字相同,但是引數個數相同

//在js中沒有過載的概念。

//相同名稱的函式會把上面你的函式進行覆蓋,所以在js中不能出現同名的函式。

函式定義的兩種形式:

1.函式的宣告:function fun(){};

2.函式的表示式:var myfun=function(){};

上面兩種方式的區別

函式宣告:整個函式的提公升

函式表示式:只是變數在提公升

過程是這樣子的:

解析器: 

//全域性作用域

//預解析------>找到了 var a; function f1(){};

//然後再進行一行一行的執行**

//a = 18;

//f1();

---f1的區域性作用域

---預解析--->var b; var a;

----然後在從上到下一行一行的執行**

解析過後最終的**變成了這樣:

最後輸出為:is not defined 還有 9

這裡要注意的是:在函式內部進行獲取變數的時候,會先在當前的作用域上進行尋找,有沒有變數宣告,如果有就返回當前變數宣告,如果沒有的話就上一級進行尋找變數的值

作用域問題:

//全域性作用域:

//1.在標籤中定義的變數---全域性變數

//2.不使用var宣告的變數也是----全域性變數。

//3.當關閉網頁或者瀏覽器時網頁才會進行釋放

區域性作用域

//1.只有在函式中內部使用var定義的變數才是區域性變數

//2.超出函式的使用範圍後,區域性變數會被銷毀

js中沒有塊級作用域

//if或者var定義的變數全部是全域性變數

關於JS 函式this的用法

在js中寫函式時,很多用到this.this究竟是什麼,this是個關鍵字,是個指標,指向執行環境作用域,也稱之為上下文。先說下函式吧,個人理解是函式是在語言中重複呼叫的 塊.在js裡,把函式賦值給物件的屬性時,稱之為方法 如 var m m.title title m.show function ...

JS之關於函式

function test var test function 函式內部一旦執行return,則函式執行完畢,如果沒有return語句,則返回 undefined 關於第二種函式的定義,第乙個test 實際上是函式物件,函式名test可以視為指向該函式的變數,此時,function就是乙個匿名函式,...

關於JS函式部分的筆記

首先來理解一下什麼事物件 ecma 262是這樣定義的 無序屬性的集合,其屬性可以包含基本值 物件或者函式 也就是說,物件是 名 值 對的集合。var person new object person.name jake person.age 18 person.sayname function 上...