2017-07-29 56 views
0

我有這樣的代碼 -使用Javascript - 陣列保持被解釋爲字符串

var status = ["A", "B", "C", "D", "E", "F"]; 
 

 

 
$(function() { 
 
    console.log(window.status); 
 
    console.log(typeof window.status); 
 
    var status = ["A", "B", "C", "D", "E", "F"]; 
 
    console.log(status); 
 
    console.log(typeof status); 
 

 
});
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

$(function() {});var status聲明爲一個數組。 然而,當把它記錄到控制檯時,它顯示爲一個字符串。

我在ready函數裏面重複同樣的事情,它現在的行爲就像它現在這樣。這段代碼有什麼問題?

+0

當運行該代碼,它示出了一個陣列和一個對象。問題是什麼 ? –

+1

@DalvinderSingh檢查滾動條;) – Andreas

+0

對我來說它顯示日誌爲 - A,B,C,D,E,F和typeof顯示字符串。這個瀏覽器是否特定? 最後兩個日誌顯示爲一個數組,因爲他們應該。 –

回答

2

檢查與其他名稱其使用缺省由JavaScript

var my_status = ["A", "B", "C", "D", "E", "F"]; 
 

 

 
$(function() { 
 
    console.log(window.my_status); 
 
    console.log(typeof window.my_status); 
 
    var status = ["A", "B", "C", "D", "E", "F"]; 
 
    console.log(status); 
 
    console.log(typeof status); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

謝謝,我沒有意識到這個地位是由JS採取的。 –

3

window.status是定義瀏覽器狀態欄文本(字符串)的屬性。因此你的數組會自動轉換爲一個字符串。

如果移動status到自己的封閉,例如通過(function(){...})();內包裝,並通過status,不window.status訪問它你可以防止這種情況發生。