如何以字符串格式显示JavaScript对象的内容,就像我们alert变量一样?
我希望显示对象的格式相同的方式.
假设我创建了一个对象:
var myObject =
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
Run Code Online (Sandbox Code Playgroud)
检索属性名称列表的最佳方法是什么?即我想最终得到一些变量'键',这样:
keys == ["ircEvent", "method", "regex"]
Run Code Online (Sandbox Code Playgroud) 什么是确定JavaScript中的变量是否为数组的最佳事实标准跨浏览器方法?
在网上搜索有很多不同的建议,有些是好的,有些是无效的.
例如,以下是一种基本方法:
function isArray(obj) {
return (obj && obj.length);
}
Run Code Online (Sandbox Code Playgroud)
但是,请注意如果数组为空,或者obj实际上不是数组但实现了长度属性等会发生什么.
那么哪种实现在实际工作方面是最好的,跨浏览器并且仍然有效地执行?
这不是一个笑话的设置,我真的在问.
Douglas Crockford喜欢说在javascript原型面向对象语言中没有必要new.
他解释说,这new只是为了让人们从基于类(即" 经典 ")的面向对象编程语言中获得某种程度的安慰:
JavaScript,我们很难
new雅JavaScript是一种原型语言,但它有一个
new运算符,试图使它看起来有点像经典语言.这往往会使程序员感到困惑,从而导致一些有问题的编程模式.您永远不需要
new Object()在JavaScript中使用.请改用对象文字{}.
好的:
new 坏 {} 好但是后来评论者VítorDeAraújo指出这两者并不相同.他给出了一个例子,表明a string不像object:
字符串对象和字符串值不是同一个东西:
Run Code Online (Sandbox Code Playgroud)js> p = "Foo" Foo js> p.weight = 42 42 js> p.weight // Returns undefined js> q = new String("Foo") Foo js> q.weight = 42 42 js> q.weight 42字符串值不能具有新属性.同样的事情对其他类型也有效.
这里发生了什么string不是一个object?我是否混淆了javascript与其他一些语言,其中一切都是对象?