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、當進行函數調用的時候,實參會複制一份給形參,這時候形參會另外開辟一個空間。
形參的空間由垃圾回收機制回收!(當多次調用一個函數的時候,形參是每次都開 辟一個空間還是開辟一次多次更改????)每次都