首先說一下函數傳參。 函數傳參:顧名思義就是函數傳遞參數。這個參數指的就是已知的JS數據類型:數字、字元串、布爾值、函數、對象以及未定義。 1、數字 上邊代碼中相當於使用a來接收100,b來接收px,通過函數中的alert(a+b)展示為100px。 2、字元串 執行之後第一次彈出 第二次彈出 在這 ...
首先說一下函數傳參。
函數傳參:顧名思義就是函數傳遞參數。這個參數指的就是已知的JS數據類型:數字、字元串、布爾值、函數、對象以及未定義。
1、數字
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title></title> 6 <script> 7 fn1(100,'px'); 8 function fn1(a,b){ 9 alert(a+b); 10 } 11 </script> 12 </head> 13 </html>
上邊代碼中相當於使用a來接收100,b來接收px,通過函數中的alert(a+b)展示為100px。
2、字元串
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title></title> 6 <script> 7 fn1('abc'); 8 fn1('前端技術'); 9 function fn1(a) { 10 alert(a.charAt(2)); 11 } 12 </script> 13 </head> 14 </html>
執行之後第一次彈出
第二次彈出
在這段代碼裡邊相當於a接收了兩次傳入的參數,第一次是abc,第二次是前端技術;而且兩次調用均沒有問題都能正常展示。
3、函數
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title></title> 6 <script> 7 fn3(function fn3(a) { 8 alert(a); 9 }) 10 function fn3(fn){ 11 fn(); 12 } 13 </script> 14 </head> 15 </html>
在這段代碼中:fn3=fn3(function fn3(a) { alert(a); }),fn=fn3,fn()=調用fn,由於沒有給a進行賦值,所以去預解析的值展示undefined。
如果在fn()內加入內容就會展示加入的內容。
例如:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title></title> 6 <script> 7 fn3(function fn3(a) { 8 alert(a); 9 }) 10 function fn3(fn){ 11 fn('nihao'); 12 } 13 </script> 14 </head> 15 </html>
以上是匿名函數,如果函數已經命名則會是這樣的
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title></title> <script> function fn4(){ alert(4); } fn3(fn4); function fn3(fn){ fn(); } </script> </head> </html>
在這段代碼裡邊,fn3=function fn4() { alert(4);},fn=fn3,調用fn()=調用fn3所以展示結果為4。
4、對象
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title></title> 6 <script> 7 fn5( window, document ); 8 function fn5( w, d ) { 9 w.onload = function () { 10 d.body.innerHTML = 123; 11 }; 12 } 13 </script> 14 </head> 15 </html>
在這段代碼裡邊通過w,d來接收window和document,然後通過在函數內使用innerHTML來對body進行操作,最終顯示123。