js函式宣告的兩種方式:
1.function functionname()//函式宣告
functionname=function()//函式表示式
這兩個方法之間的區別是重點!!!
第乙個會在所有**執行前被解析
第二個會在**被執行時執行
如: 例子1
function
functions
(flag)else
}
結果:b;
就是因為他們用的第一種方式宣告函式,所以會在執行之前被解析,所以此段**相當於
function
functions
(flag)
function
getvalue
()if(flag)
else
}
例子2
function
functions
(flag)
}else
}
這樣如果flag為true,返回a,
flag為false,返回b
JS變數宣告和函式宣告提公升
很多時候,在直覺上,我們都會認為js 在執行時都是自上而下一行一行執行的,但是實際上,有一種情況會導致這個假設是錯誤的。a 2 var a console.log a 按照傳統眼光,console.log a 輸出的應該是undefined,因為var a在a 2之後。但是,輸出的是2。再看第二段 ...
JS函式宣告提前 1
var a 10 function pay pay 7 console.log a 7 函式宣告提前 執行js 前,解析器將當前作用域內宣告的所有變數和函 數都會放到作用域的開始處 1 function pay 會提前宣告 2 var a 10 3 pay 執行函式 4 a 3 a首先會在自己的函式...
js中函式宣告提前
js中普通的變數會宣告提前外,函式也會宣告提前,不同的是由於函式的宣告有兩種方法,宣告提前的方式也就有兩種方式 1 通過 var fn function 定義函式,只是將函式名提前了,函式體沒有提前,如果在函式體前使用fn 呼叫函式就會報錯 fn varfn function 結果 報錯!uncau...