JavaScript中的运算符优先级

JavaScript中的运算符优先级,javascript,Javascript,我和我的同事就优先运算符打赌过,我真的不明白为什么在下面的几行中,俄文短语不写到控制台: f==>console.log“аааааааа”0; 0&&5==f; 我在msdn文档中看到:在第一步中,我们需要计算等式运算符==。这意味着我们需要计算0&&5和f值,然后进行比较。 通过计算f,字符串必须写入控制台,但不能写入。&&是逻辑and运算符,语法如下: var result = expression1 && expression2; 问题是,如果expression1的计

我和我的同事就优先运算符打赌过,我真的不明白为什么在下面的几行中,俄文短语不写到控制台: f==>console.log“аааааааа”0; 0&&5==f; 我在msdn文档中看到:在第一步中,我们需要计算等式运算符==。这意味着我们需要计算0&&5和f值,然后进行比较。 通过计算f,字符串必须写入控制台,但不能写入。

&&是逻辑and运算符,语法如下:

var result = expression1 && expression2;
问题是,如果expression1的计算结果为false,则其值将是返回的值,否则expression2将是返回的值

例如:

var result = false && getStuff();
由于第一个表达式为false,因此比较将停止并返回false,并且不会计算getStuff

在您的情况下,0的计算结果为false。所以它被返回,表达式2甚至没有被计算,所以f没有被执行


有关的详细信息,请参见此处。

0&&false。。。应该是什么?0&&5==f;为0&&5==f;其中0为false&&short circuits,不计算5===f。每个Falsy值都会使用逻辑and BETHEN停止对以下表达式的计算。