先来看一个例子: function get(){ return { a:1 } } var r=get(); console.log(r); 似乎r的值应该是{a:1},然而运行结果却是undefined,这就得从ecmascript的分号自动插入规则说起. js的自动插入分号有三个规则: 1,从左向右解析程序,当遇到不符合词法文法产生式的token,只要满足下面条件之一就在违规token前自动插入分号: a,至少有一个行结束符分隔了违规token和前一个token. b,违规token是} f