Syd*_*ney 3 javascript conditional-statements jsfiddle
不确定这个问题是因为jsFiddle中的错误还是我对javascript圆括号的误解.我有这个代码:
let x = 5
(x > 0) && console.log('hello')
Run Code Online (Sandbox Code Playgroud)
这不起作用.但是,以下没有括号工作.
x > 0 && console.log('hello')
Run Code Online (Sandbox Code Playgroud)
我的印象是我可以在条件下使用圆括号将事物分组在一起.我不知道为什么我的第一行代码不起作用.这是我对圆括号的误解吗?
我实际上是想在这个jsFiddle代码中教别人一个更高级的例子.https://jsfiddle.net/x616atk0/
它不起作用,因为你丢失了分号 let x = 5
代码应该是:
let x = 5;
(x > 0) && console.log('hello');
Run Code Online (Sandbox Code Playgroud)
否则,您的代码可以转换为:
let x = 5(x > 0) && console.log('hello');
Run Code Online (Sandbox Code Playgroud)
当然,5这不是一个函数,并且x(您在表达式中使用的,其中评估值将作为参数传递)尚未定义.
该错误具有误导性,因为您使用的是您定义为参数的相同变量.如果你有
let x = 5
(5 > 0) && console.log('hello');
Run Code Online (Sandbox Code Playgroud)
你会得到:TypeError: 5 is not a function这正是问题所在.
这就是分号很重要的原因!
是的,我绝对做到了