![](/img/trans.png)
[英]javascript selection sort causing chrome browser console to hang or crash why?
[英]Why does the chrome browser console forcibly coerce a string to a number in javascript?
新手問題。 我正在學習“您不知道JS”,我在第11頁上發現了此異常:
var a = "42";
var b = Number( a );
console.log( a ); // "42"
console.log( b ); // 42
現在,如果我在JS Bin中運行它,便會獲得該行為。 但是在我正在學習的最新的Chrome瀏覽器控制台中,我得到了這種意外的行為:
var a = "42";
var b = Number(a);
console.log(a);
console.log(b);
42 // no quotes?
42
< undefined
嘗試從數字到字符串手動強制轉換,這也是意外的結果:
a = 42;
b = a.toString();
console.log(a);
console.log(b);
42
42 // no quotes?
< undefined
有人可以闡明這種行為嗎? 我用谷歌搜索了一下,加油。
值中沒有帶引號的事實是由於字符串不包含任何引號作為其內容 。 因此,除非是這種情況,否則您不應期望產生報價。
為了消除任何疑問,您始終可以使用typeof
檢查類型:
var a = "42"; var b = Number(a); var c = '"String with quotes as part of the content."'; var d = 'String with NO quotes as part of the content.'; console.log(a, typeof a); console.log(b, typeof b); console.log(c, typeof c); console.log(d, typeof d);
請記住,特定瀏覽器決定實現其console
行為的方式完全取決於他們。 由於console
不是JavaScript的一部分,因此沒有任何標准。 因此,在這方面,發現一個客戶與另一個客戶之間的差異是完全正常的。 重要的是JavaScript運行時根據標准處理數據。
Chrome console.log(..)輸出始終不帶引號。 嘗試看看:
console.log("asd")
並在控制台中嘗試:
var a = "42";
a;
應該返回想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.