javascript - 在chrome的控制台输入{ } ;为什么之后返回的是undefined?而不是一个对象?--已解决
本文介绍了javascript - 在chrome的控制台输入{ } ;为什么之后返回的是undefined?而不是一个对象?--已解决的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如图,想不通为什么会出现这种情况?第三条语句为什么会报错?
===============分割线==========================
谢谢大家的解答。
问题已经得到解决了,以{}
开头语句中的{}
被解析成代码块了。
具体请看周羊羊的解答。
解决方案
js的结果值分语句结果值和表达式结果值,你的几次输入,如果不加分号,是这样的
加了分号,就是语句,控制台下一行显示的是语句结果值;
没加分号,就是表达式,控制台显示的表达式结果值。
关于第三个{a:3,b:4}报错,
js里大括号除了有创建对象的作用,还有包装代码块的作用,比如经常用的if(...){...};for(...){...} 这样的结构中,大括号的作用就是把一个或多个语句组成一个代码块;
你这里输入加了分号的'{a:3,b:4};'浏览器会把它作为代码块,而不是对象声明处理,本质上就相当于在控制台直接输'a:3,b:4',没有这样的语法啊,当然报错了
关于这一块的知识,更详细的可以看《你不知道的JavaScript(中卷)》第五章语法部分
https://book.douban.com/subje...
--------补充的分割线-----------
第二个'{a:2};'没报错,应该是把这东东当成了label语句
https://developer.mozilla.org...
这篇关于javascript - 在chrome的控制台输入{ } ;为什么之后返回的是undefined?而不是一个对象?--已解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文