我有下面的代碼:爲什麼document.write(' 45');讓我拿 %?
<!DOCTYPE html>
<meta charset="UTF-8">
<title>An HTML5 document</title>
<script>
document.write('\45');
</script>
的結果是,我得到一個 '%'。爲什麼?我無法理解代碼。
謝謝!
我有下面的代碼:爲什麼document.write(' 45');讓我拿 %?
<!DOCTYPE html>
<meta charset="UTF-8">
<title>An HTML5 document</title>
<script>
document.write('\45');
</script>
的結果是,我得到一個 '%'。爲什麼?我無法理解代碼。
謝謝!
字符%
具有ASCII值37.
\45
爲字符37八進制轉義碼(因爲4×8 + 5 = 37)。
注意的是,根據Mozilla Developer Network的八進制轉義碼在字符串的使用已被棄用:
八路轉義序列(\接着一個,兩個,或三個八進制數字)已被棄用字符串並定期表達文字。
\ 45是字符值。 一樣,如果你會直視你的記憶,字符「%」將被存儲爲值45
哪個角色是由字符編碼來確定,如ASCII和UTF-8
之類的東西A和a也有不同的值。 A是可能的a的值 - 26,但不知道存在雖然..
反斜槓(\
)用作轉義字符。 \45
是指ASCII碼45,它是%
。如果你希望你的代碼輸出\45
,你必須寫
document.write('\\45');
ASCII代碼*八進制* 45(通常在C語言語言中寫成045,如果它們完全支持八進制文字),通常將其稱爲ASCII代碼37(因爲我們通常引用* decimal中的ASCII代碼*或十六進制使用0x前綴)。 – 2011-03-17 11:01:13
@ T.J。 Crowder感謝您的回覆。 – weilou 2011-03-17 14:11:52
這些是八進制值,這些值轉義反斜線: http://www.w3schools.com/TAGS/ref_ascii.asp
增加或減少你的號碼,你會得到符號和單引用。 http://jsfiddle.net/wrd8X/
謝謝你的回覆。但W3School是一個糟糕的網站。看看這個:http://w3fools.com/ – weilou 2011-03-17 14:05:02
@Wei我同意,我剛貼上價值圖的快速參考 – DhruvPathak 2011-03-17 18:21:13
%是ASCII碼45 - http://www.robelle.com/smugbook/ascii.html 所以\ 45的意思是「寫出ASCII字符碼45」。
如果你想在文本字符串\ 45寫出你需要逃避與其他\字符\
<script>
document.write('\\45');
</script>
謝謝您的回答! – weilou 2011-03-17 13:50:29