2012-03-14 6 views
2

は、次の例を考えてみましょう:シンプルなWebサーバーの例 - プロパティ名を引用符で囲む必要があるのはなぜですか?

var http = require('http'); 
var server = http.createServer(function(request, response) { 
    response.writeHead({ 
    'content-type': 'text/plain' 
    }); 
    response.end('Hello world!'); 
}); 

server.listen(8000); 

は、私は引用符にcontent-typeプロパティ名を入れなければならないのはなぜ? writeHeadが普通のJSオブジェクトを期待していませんか?なぜ私が何か書くことはできません。

{ 
    content-type: 'text/plain' 
} 

答えて

10

を名前でvalid identifier(変数名として使用することができ、すなわち何か)でない場合は、JavaScriptオブジェクトのプロパティ名は、リテラル引用符で囲む必要があります。整数も明らかに大丈夫です。ダッシュ文字(-)は識別子の有効な部分ではないので、文字列を引用符で囲む必要があります。

var o; 
o = {content-type: 'text/plain'}; // => SyntaxError: Unexpected token "-" 
o = {'content-type': 'text/plain'}; // => OK 
o = {contentType: 'text/plain'}; // => OK 
o = {123: 456}; // => OK 
o = {$x: 123}; // => OK 
o = {π: 234}; // => OK 
関連する問題