【JavaScript】全角スペースは使ってよい(仕様では)
問題
JavaScriptに全角スペースが入っているのを見つけたのですが、エラーも何も問題が発生していないです。
そんなもんなんですか。
//↓ifの後ろに全角スペースが! if (a > 0) { }
答え
JavaScriptの仕様(ECMAScript 5.1の仕様)によると、以下の文字がホワイトスペースとして定義されている。
Table 2 — Whitespace Characters Code Unit Value Name Formal Name \u0009
Tab <TAB> \u000B
Vertical
Tab<VT> \u000C
Form
Feed<FF> \u0020
Space <SP> \u00A0
No-break
space<#x0a> \uFEFF
Other
category “Zs”Byte
Order Mark
Any
other Unicode “space separator”<BOM>
<USP>
UnicodeのカテゴリZsに属する文字は全て空白文字として扱われるとのことで、該当する文字は以下の通り。
Character | Name |
---|---|
U+0020 | SPACE |
U+00A0 | NO-BREAK SPACE |
U+1680 | OGHAM SPACE MARK |
U+2000 | EN QUAD |
U+2001 | EM QUAD |
U+2002 | EN SPACE |
U+2003 | EM SPACE |
U+2004 | THREE-PER-EM SPACE |
U+2005 | FOUR-PER-EM SPACE |
U+2006 | SIX-PER-EM SPACE |
U+2007 | FIGURE SPACE |
U+2008 | PUNCTUATION SPACE |
U+2009 | THIN SPACE |
U+200A | HAIR SPACE |
U+202F | NARROW NO-BREAK SPACE |
U+205F | MEDIUM MATHEMATICAL SPACE |
U+3000 | IDEOGRAPHIC SPACE |
全角スペース (U+3000) もカテゴリZsに含まれる。
つまり、半角スペースと同様に空白文字として扱われる。
※ 使いたいわけではない!
コメント