SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【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>

http://es5.github.io/#x7.2

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に含まれる。

つまり、半角スペースと同様に空白文字として扱われる。

※ 使いたいわけではない!

関連するメモ

コメント