-----------------------分割線-------------------------
首先在使用函式的時候要了解函式的三要素:
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 上...