Re: [問題] javascript 同一變數在同一函式下再宣告
※ 引述《hirabbitt (兔子)》之銘言:
: 例如
: function f1(){
: var test;
: var test;//再var一次
: }
: IE給過了
: 我知道js的變數可以不宣告
: 它會在最外層自動幫你宣告一個
: 但是如果是重覆宣告
: 在js內部會發生什麼事嗎?
: 謝謝
嚴謹的程式語言是不能重覆宣告的 不過javascript可以
要知道結果 測一下就知道了
var x = 1;
alert(x);//1
var x = 2;
alert(x);//2
只是我還想知道物件、記憶體配置發生了什麼變化,於是我試圖寫段code來了解,
http://www.jsfiddle.net/RmWty/,但還是不知道過程的變化。
原題:
var x = 1;
var x = 2;
雖然不確定發生了什麼事,但應該有以下的可能。
一、新的直接蓋掉舊的,也就是等於
var x = 1; // memory 1000
x = 2; // memory 1000
二、舊的馬上被移除(或稍後被garbage collection),留下新的
var x = 1; // memory 1000
x = null; // memory 1000 free
var x = 2; // memory 2000
三、舊的、新的都在,也就是舊的還有被其他東西reference到 (可是我想不出例子),
只是 x 指向新的,
var x = 1; // memory 1000
var x = 2; // memory 2000
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.30.198
→
11/08 15:16, , 1F
11/08 15:16, 1F
→
11/08 15:17, , 2F
11/08 15:17, 2F
→
11/08 17:21, , 3F
11/08 17:21, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):