眾所周知,在es5的規則下,使用var宣告變數,變數會提公升,函式亦是如此,但是如果碰到函式名和變數名是同乙個的情況下,**會如何執行呢?先看下面的例子
foo(); //1
var foo;
//這是乙個函式宣告
function foo();
// 這是乙個函式表示式,不會提公升,如果是乙個函式宣告則會提公升
foo = function()
上面的**會輸出1而不是2,原因就是函式的提公升 由於變數的提公升,這段**會被引擎理解為如下**
function foo()
foo();//1
foo = function()
/*ps: var foo 雖然在 function foo()的宣告之前,但它是重複宣告,會被忽略
*/
二、函式的宣告會覆蓋前面已有的函式宣告
// 此段**的輸出結果是 3
foo();//3
function foo();
var foo = function();
function foo();
/* 上面的**會被引擎理解為*/
function foo();
foo();//3
// 注:此段**不會提公升,因為這是函式表示式,而不是函式宣告
foo = function()
foo();//2
再來個例子鞏固下上面的
console.log(foo());//3
function foo()
console.log(foo());//3
foo = function();
function foo();
console.log(foo());//2
/*此段**會被引擎解析成 function foo() 被覆蓋了*/
function foo()
console.log(foo());//3
console.log(foo()); //3
foo = function();
console.log(foo());//2
MoSCoW法則 使用者故事排優先順序
莫斯科法則,就是must or should,could or would not。在排使用者故事優先順序的時候,把使用者故事按以下4種類別排優先順序。must 這個迭代一定要做的。比如前面提到的 必需 的功能。should 應該做,但若沒時間就算了。比如前面提到的 不太需要的 功能。could 不...
索尼法則 ?職場法則
最近在看片山修寫的索尼法則這本書。作為一本描述日本企業成功史的書,在中國當然不會太出名,但是在彼岸的日本,這本書賣到了1000萬本,這是乙個難以想象的巨大數字。需知道,日本總人口不過1億多,一本書買到1000萬本,也就是說每10個日本人中必有乙個是這本書的讀者。可想而知這本書在日本的火熱程度。因為興...
優先佇列(過載函式)
優先佇列是stl中比較重要的乙個部分,用起來非常方便,在很多排序題中要比sort一遍一遍排序快很多,它能根據自己定義順序來進行排序。主要的兩種表達形式 其實還有其他的,這裡就先列舉兩個 第一種是用friend bool operator來寫 include includeusing namespac...