CNode

下面这段JS代码,什么语法检测工具可以发现错在哪里?

问答
Cchapgaga发布于8 年前最后回复8 年前17 回复7621 浏览0 收藏
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]

查看回复

回复 (17)

C
chapgaga#1·8 年前

用webstorm也没报错,奇怪了

D
dislido#2·8 年前

eslint应该能检测出来

L
linliny#3·8 年前

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

Z
zhaixiaowai#4·8 年前

数组的数组 确实从语法上是没有错误的

F
fruit-memory#5·8 年前

多维矩阵,没错啊

C
chapgaga#6·8 年前
引用 ekoneko语法没有错, eslint 会检测到异常的换行

@ekoneko 数组元素之间没有逗号,语法应该报错才对啊

C
chapgaga#7·8 年前
引用 zhaixiaowai数组的数组 确实从语法上是没有错误的

@zhaixiaowai 应该是多层数组嵌套,元素之间应该用逗号分隔,没有逗号,应该检测出错误,可是jshiint为何检测不出?

C
chapgaga#8·8 年前
引用 fruit-memory多维矩阵,没错啊

@fruit-memory 没发现少了一个逗号么?

['sfdaf'], ['adf',['adsf','sdf','asdf'], 'sdf:sdf'] ['-df--'],

L
liaoyinglong#9·8 年前
[‘sfdaf’],
[‘adf’,[‘adsf’,‘sdf’,‘asdf’], ‘sdf:sdf’]
[’-df–’],
// ----------
// 把  [‘adsf’,‘sdf’,‘asdf’], ‘sdf:sdf’] 换成一个变量来看
var  arr = [‘adsf’,‘sdf’,‘asdf’], ‘sdf:sdf’]
[
  [‘sfdaf’],
  [‘adf’, arr[’-df–’],
]

你觉得js解析引擎会觉得你那是两个数组吗? 而不是取这个对象的值吗?

E
ekoneko#10·8 年前

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

message: 'Unexpected newline between object and [ of property access. (no-unexpected-multiline)'
S
StephenKingg#11·8 年前

image.png vscode with eslint

C
chapgaga#12·8 年前
引用 StephenKinggvscode with eslint

@StephenKingg vscode速度有sublime快么?sublime添加了很多项目,速度没有慢下来

C
chapgaga#13·8 年前
引用 ekoneko语法没有错, eslint 会检测到异常的换行

@ekoneko ['adf',['adsf','sdf','asdf'], 'sdf:sdf'] ['-df--'], 少了逗号,语法没错?

S
supperchong#15·8 年前

[,(,+,-,/这五个符号如果出现在开头,而上一条语句结尾没有分号,则这两条语句将会被解析成一条语句,也就是[‘adf’,[‘adsf’,‘sdf’,‘asdf’], ‘sdf:sdf’][’-df–’],这个并没有错啊,只是值是undefined

E
eyblog#16·8 年前

从语法上确实没错啊。。。。谁让 js 支持这么多种写法,这下懵比了吧

D
dislido#17·8 年前

['a','b']['1']==='b'

参与回复
登录后即可参与回复。登录