天天看點

我的JS學習筆記-----函數

1、過濾掉空值(undefined、null、空字元串、0、NaN)

a = a || 0;//當n為真的時候傳回n,當n為假的時候傳回0

Array = array || 0;

2、函數的傳回值(return)

function getSum(a,b){......;retutn sum;}

var sum=getSum(1,2);//傳回值可以用一個變量來接收

console.log(getSum(1,2));//傳回值也可以直接列印到頁面上

*return之後的的代碼不會執行!

3、函數的四種形式

i. 沒有參數沒有傳回值

ii. 有參數沒有傳回值

iii. 沒有參數有傳回值

iv. 有參數有傳回值

4、函數的三要素

i. 功能

ii. 參數

iii. 傳回值

5、一定要習慣寫函數的注釋 /**+Enter鍵

6、使用者輸入的内容是非常危險的,是以要不斷地判斷使用者的輸入,糾正使用者的輸入, 保證代碼的健壯性!!!!!

7、函數跟方法是不一樣的?

8、當return後沒有内容的時候,傳回undefined!

當函數沒有寫return的時候,會傳回undefined!

9、函數的參數:

形參:定義函數的時候,給實參占位

實參:調用函數的時候

10、寫return時,應該是在找到要傳回的值之後再寫。

11、關于冒泡排序:外層循環--->isSort=true;//假設已經排好序--->内層循環--->内層循環 中判斷是否交換位置--->如果交換位置isSort=false;//實際上并沒有排好--->再外層 循環判斷isSort為真時跳出外層循環

12、寫函數體的時候,可以先注釋出函數體要解決的每一步,再按步驟添加代碼

13、在JS中,函數的實參的個數和形參的個數可以不一緻,但是在寫函數的時候記得 對形參進行初始化,例如:a=a||0;

14、JS沒有重載,如果相同函數名的函數有多個,最後的會把之前的全部覆寫掉。

其他類型的語言會有重載(函數名相同,函數的參數的個數或類型不同)。是以在 JS中不允許有同名的函數(這句話不是絕對的)。

15、函數定義的兩種方式:

函數的聲明

函數表達式

三、函數表達式

1、Var sum=function (...){...};//沒有函數名,這是一條語句,是以在最後面要有分号!

2、函數聲明與函數表達式的差別:

四、變量的作用域

1、全局作用域:在任何位置都可以通路

局部作用域:在函數内部聲明一個變量,隻能在函數内部使用。

2、當變量超出作用于之後變量會被垃圾回收機制銷毀。

3、不用var聲明變量是全局變量

4、JS沒有塊級作用域( {代碼塊} 在其他語言中在代碼塊中定義的變量在外部是通路 不到的,在JS中外部是可以通路到的)(在for、if中的代碼都是代碼塊)

也就是說在JS中在for和if中定義的變量也都是全局變量!!!

5、變量的提升、function函數的提升!!!!!

6、自調用函數:(用于jq)

(function () {......})();

7、當進行函數調用的時候,實參會複制一份給形參,這時候形參會另外開辟一個空間。

形參的空間由垃圾回收機制回收!(當多次調用一個函數的時候,形參是每次都開 辟一個空間還是開辟一次多次更改????)每次都

繼續閱讀