2013-12-18 40 views
0

請考慮使用JavaScript中的HTML代碼段。粘貼此代碼here可以看到在W3Schools的Tryit編輯器中運行的東西。通過將參數傳遞給Javascript函數無法理解行爲

<!DOCTYPE html> 
<html> 
<body> 
<a href="javascript: submitQuickAddForm('00001030')">Number with quotes</a><br> 
<a href="javascript: submitQuickAddForm(00001030)">Number without quotes</a> <br> 
<a href="javascript: submitQuickAddForm(hello)">Text with quotes</a> <br> 
<a href="javascript: submitQuickAddForm('hello')">Text without quotes</a> 
<script> 
function submitQuickAddForm(itemNumber) { 
alert(itemNumber); 
} 
</script> 

</body> 
</html> 

第一個環節推出00001030. 第二:這一點我無法理解呢?! 第三個鏈接什麼也沒做(可能沒有指定參數的類型) 和最後一個鏈接再次運行良好(輸出:你好)

那麼第二個和第三個鏈接是什麼?

回答

4

第一個是字符串,第二個被解釋爲,因爲八進制數0領先

編輯:從@RobG解釋質疑:「但爲什麼它不容提醒剛剛00001030或至少1030?爲什麼是536?「

因爲Number.prototype.toString假設10

更新的基數: 第三鏈接什麼也不做,因爲hello沒有定義。最有可能你在控制檯中出現錯誤:ReferenceError: hello is not defined

+1

是的,第二個是一個數字..但爲什麼不能只提醒00001030或至少1030?爲什麼選擇536? – GedankenNebel

+1

Ocatal是基數8編碼的數字。基數8中的1030是基數10中的536. –

+1

@GedankenNebel,試試這個:http://www.translatorscafe.com/cafe/units-converter/numbers/calculator/octal-to -decimal /並將八進制數字放在第一個框中。 –

相關問題