/*
* 函數 function
* - 函數也是一個對象
* - 函數中可以封裝一些功能(代碼),在需要時可以執行這些功能(代碼)
* - 函數中可以保存一些代碼在需要的時候調用
* - 使用typeof檢查一個函數對象時,會返回function
*/
//我們在實際開發中很少使用構造函數來創建一個函數對象
//創建一個函數對象
//可以將要封裝的代碼以字符串的形式傳遞給構造函數
//var fun = new Function("console.log('Hello 這是我的第一個函數');");
//封裝到函數中的代碼不會立即執行
//函數中的代碼會在函數調用的時候執行
//調用函數 語法:函數對象()
//當調用函數時,函數中封裝的代碼會按照順序執行
//fun();
/*
* 使用 函數聲明 來創建一個函數
* 語法:
* function 函數名([形參1,形參2...形參N]){
* 語句...
* }
*/
function fun2(){ console.log("這是我的第二個函數~~~"); alert("哈哈哈哈哈"); document.write("~~~~(>_<)~~~~"); } //console.log(fun2); //調用fun2 //fun2();
/*
* 使用 函數表達式 來創建一個函數
* var 函數名 = function([形參1,形參2...形參N]){
* 語句....
* }
*/
var fun3 = function(){ console.log("我是匿名函數中封裝的代碼"); }; fun3();
...
函數的參數
/*
* 定義一個用來求兩個數和的函數
* 可以在函數的()中來指定一個或多個形參(形式參數)
* 多個形參之間使用,隔開,聲明形參就相當於在函數內部聲明了對應的變量
* 但是並不賦值
*/
function sum(a,b){ console.log("a = "+a); console.log("b = "+b); console.log(a+b); }
/*
* 在調用函數時,可以在()中指定實參(實際參數)
* 實參將會賦值給函數中對應的形參
*/
/*sum(1,2); sum(123,456);*/
/*
* 調用函數時解析器不會檢查實參的類型,
* 所以要注意,是否有可能會接收到非法的參數,如果有可能則需要對參數進行類型的檢查
* 函數的實參可以是任意的數據類型
*/
//sum(123,"hello"); //sum(true , false);
/*
* 調用函數時,解析器也不會檢查實參的數量
* 多余實參不會被賦值
* 如果實參的數量少於形參的數量,則沒有對應實參的形參將是undefined
*
*/
//sum(123,456,"hello",true,null); sum(123);