下面这段JS代码,什么语法检测工具可以发现错在哪里?
发布于 10 天前 作者 chapgaga 440 次浏览 来自 问答
var asdfsdf = {
	sdfsdf: [
		['aaaaa', 'aaaaa'],
		['adsfsadf', 'wfwfwef'],
		['--sdf-','asdfasdf">asdfsadfsdf>'],
		['afds'],
		['asdf'],
		['sfdaf'],
		['adf',['adsf','sdf','asdf'], 'sdf:sdf']
		['-df--'],
		['sfd', 'dsf:sdf'],
	]
};

[‘adf’,[‘adsf’,‘sdf’,‘asdf’], ‘sdf:sdf’] 这句后门的逗号没写,但是jshint语法检测为何没有报错?

jshint检测通过 [JSHint: D:\workspace\test.js] ✓ 0 errors, [esc] to hide. [Finished in 0.3s]

5 回复

用webstorm也没报错,奇怪了

eslint应该能检测出来

[][a]是不会报错的,他会认为是对象的a属性,语法上是没问题的,这是对象取值的方法,你这个最后得到的应该是undefined, 你试着把’-df–'换成’length’试试,然后应该就知道了

语法没有错, eslint 会检测到异常的换行

message: 'Unexpected newline between object and [ of property access. (no-unexpected-multiline)'

image.png vscode with eslint

回到顶部