同名變量和函數的問題
phpcn_u3114
phpcn_u3114 2017-06-20 17:42:16
0
2
978

具體看我截的圖QQ截图20170620174114.jpg

phpcn_u3114
phpcn_u3114

全部回覆(2)
Ty80
<script>
var bar=function(){
   var foo=function(){}
   foo=10;
}
var foo=1;
bar();
alert(foo);
</script>

js申明部分被頂置,函數內部的foo是局部變量,不影響全局的foo。

  • 回覆 謝謝你的回答,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:38:15
  • 回覆 謝謝你的回答,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:38:16
ringa_lee

1函數宣告會置頂

2變數宣告也會置頂
3函數宣告比變數宣告更置頂:)
4變數和賦值語句一起書寫,在js引擎解析時,會將其拆成宣告和賦值2部分,聲明置頂,賦值保留在原來位置
5聲明過的變數不會重複聲明

以上這幾點你作個參考,就明白原因了!

你的程式碼實際上運行的效果是:

function bar(){
 function foo(){}
  var foo;//实际上无效
  foo=10;
}
var foo;
bar();
foo=1;
console.log(foo);


  • 回覆 謝謝你幫我解惑,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:39:29
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板