这个基于构造函数的语法创建对象有什么区别:
person = new Object()
Run Code Online (Sandbox Code Playgroud)
...和这个文字语法:
person = {
property1 : "Hello"
};
Run Code Online (Sandbox Code Playgroud)
虽然JSLint更喜欢使用对象文字表示法,但它们似乎都做同样的事情.
哪一个更好,为什么?
我运行此代码并得到以下结果.我很想知道为什么[]更快?
console.time('using[]')
for(var i=0; i<200000; i++){var arr = []};
console.timeEnd('using[]')
console.time('using new')
for(var i=0; i<200000; i++){var arr = new Array};
console.timeEnd('using new')
Run Code Online (Sandbox Code Playgroud)
[]:299msnew:363ms感谢Raynos,这里是此代码的基准,以及一些更可行的方法来定义变量.

可以在这个小片段中看到该行为(将其作为全局脚本执行):
var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
Run Code Online (Sandbox Code Playgroud)
undefinedChrome中的警报产生但可以在IE和Firefox中使用.当我这样做时,我也得到一个奇怪的价值
alert(name);
Run Code Online (Sandbox Code Playgroud)