函式優先法則

2021-09-24 15:13:03 字數 1160 閱讀 8474

眾所周知,在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...