Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自雄辩的JavaScript第4章的JavaScript对象_Javascript - Fatal编程技术网

来自雄辩的JavaScript第4章的JavaScript对象

来自雄辩的JavaScript第4章的JavaScript对象,javascript,Javascript,JSFiddle: 我的问题是: 为什么,当我执行警报(chineseBox)时,我没有获取chineseBox对象的内容?我希望看到这一点: {content: "chineseBox"} 相反,我在警报中得到了[object object] 为什么我有第三个警报-alert(“content”在chineseBox.content中)-不显示 这是大多数JavaScript引擎中对象的默认.toString()实现。要查看对象的内容,请尝试:alert(JSON.stringify(chi

JSFiddle:

我的问题是:

  • 为什么,当我执行
    警报(chineseBox)
    时,我没有获取chineseBox对象的内容?我希望看到这一点:

    {content: "chineseBox"}
    
    相反,我在警报中得到了
    [object object]

  • 为什么我有第三个警报-
    alert(“content”在chineseBox.content中)-不显示

  • 这是大多数JavaScript引擎中对象的默认
    .toString()
    实现。要查看对象的内容,请尝试:
    alert(JSON.stringify(chineseBox))

  • 如果您检查浏览器控制台,您会发现类型错误。不能在非对象上使用中的
    运算符。这不起作用(出错):
    “bar”中的“foo”
    ,但这确实起作用(返回
    false
    ):
    新字符串(“bar”)中的“foo”

  • 是在对象上调用
    toString
    的结果,因为它们是对象,并且没有应该使用的特定格式,JavaScript不知道如何序列化对象。如果想查看其内容,需要使用
    JSON.stringify

  • 中的
    操作符搜索对象内部的
    内容。不能在原语值内搜索
    内容
    ,因为它没有方法或属性;因此,它将失败。您可以通过在空对象中搜索来测试这一点;您将看到得到
    false
    作为响应


  • 数组上的
    .toString()
    通常不会返回
    [object object]
    。没有一个基元值有方法,如果有一个对象是method,“bar”不是基元,因为{}也不是基元,它们可能是文本,但不是primitives@icktoofay我说的是“酒吧”不是一个原语,如果你试图调用其中的任何东西,它可能是一个类似{}的文字,尽管你没有显式地使用new,但它们都会变成对象,我从来没有说过{}是一个原语
    {content: "chineseBox"}