1. 程式人生 > >JS函數、變量作用域

JS函數、變量作用域

str 設置 形式 形參 關鍵字 對象 返回值 s函數 之間

函數參數
函數的()中指定一個或多個形參(形式參數),多個形參之間用,號隔開,聲明形參相當於在函數內部聲明了對應的變量,但不賦值。在調用時在()中指定實參
?調用時解析器不會檢查實參類型、數量,實參可以是任意的數據類型。
函數返回值
使用return來設置函數的返回值,作為函數的執行結果來返回
return後可以跟任意類型的值
語法:return 值

function sum(a,b,c){
 var d = a + b + c;
 return d;
}
var result = sum(1,2,3);

立即執行函數

(function(a,b){
  console.log("a = "+a);
  console.log("b = "+b)
}(xxx,xxx));

方法
函數也可以稱為對象的屬性,如果一個函數作為一個對象的屬性保存,那麽這個函數稱為這個對象的方法
枚舉對象的屬性
使用for...in語句,對象中有幾個屬性,循環就執行幾次,每次執行,都會將對象中的一個屬性的名字賦值給變量
語法:for(var 變量 in 對象){
}

作用域:變量的作用的範圍。
全局作用域

  • 直接寫在<script>標簽的JS代碼,都在全局作用域
    --在打開是創建,在關閉時銷毀
  • 全局作用域有一個對象Window,可以直接使用
  • 全局作用域,創建的變量都會作為Window對象的屬性保存,創建的函數作為Window的方法保存。

變量聲明提前
使用var關鍵字聲明的變量,會在所有的代碼執行之前被聲明(但不會賦值),如果不適用var關鍵字,則變量不會被聲明提前

函數聲明提前
使用函數聲明形式創建的函數function函數(){},會在所有的代碼執行之前被創建

//會被提前
function fun(){
  console.log("xxx");
}

//不會被提前
var fun2 =  function(){

}

JS函數、變量作用域