2016-02-12 74 views
0

我想設置我的瓦爾javascript的數據類型。 例如:如何在JavaScript上設置默認數據類型?

var friends = { 
    name: String(), 
    age: Number(), 
    classmate: Boolean() 
}; 

這是正確的? 它適用於瀏覽器。但我不能確定。導致,也在下面工作。

var friends = { 
    name: '', 
    age: 0, 
    classmate: false 
}; 

我想知道這些事情是否正確或不好或不好。

+3

JavaScript變量和對象屬性不需要「默認數據類型」。絕對沒有理由這樣做。 – Pointy

回答

0

都是正確的,但合適的方法是,首先分配的類型,執行腳本和分配值,以可變的初始時間就會嚴格遵守。

0

JavaScript是弱類型語言,所以這是不是做了你什麼。您不需要聲明變量的類型,並且在初始化它們時通過指定類型來獲得任何保護。如果你需要強大的打字,我會考慮TypeScript;否則,我會喜歡不必處理它們。

0

首先,JavaScript的變量和屬性是動態的 - 他們可以採取任何數據類型的任何值。你實際上在你的例子中做的是某種投射。

var friends = { 
    index1: Number("12"), 
    index2: String("12") 
}; 

enter image description here

如果它初始化變量這種方式是好還是壞的事情真的取決於你的需求。如果你想確保每個變量的值在整個範圍內是一致的(並且防止任何異常或不需要的結果),那麼我想這對你來說是一個好習慣。

就拿。

var sum = friends.index1 + friends.index2; 
console.log(sum); 

結果是「1212」,而不是24.希望這對你有意義。

還有其他的方法,以確保值是你所期望的類型。你可以使用typeof來檢查它。通過這個,您可能不再需要在變量初始化期間轉換或「指定」數據類型。

if(typeof friends.index1 == "number") ... 
0

在JavaScript值中有一個數據類型,但變量沒有。沒有定義變量類型的機制,您可以將任何類型的值存儲到現有變量中。 (在某些語言中,這種弱類型變量被稱爲變量變體類型)。

對於您的信息,ECMA腳本2015(ES6)引入了typed arrays,允許您將二進制數組緩衝區視爲具有不同長度整數和浮點數的數組。但是,這與您的問題的措辭沒有特別的關係,並且與輸入變量不同。

注意後面的第一個例子是而不是給變量一個數據類型。之後

var friends = { 
    name: String(), 
    age: Number(), 
    classmate: Boolean() 
}; 

對象屬性name包含零長度字符串對象,age包含0和classmate含有虛假的,但你可以事後他們恢復到什麼。

相關問題