在if语句中使用逻辑AND时,为什么会得到意外的令牌?

时间:2019-04-04 13:36:01

标签: javascript if-statement unexpected-token

我试图使用if语句遍历一个数组,该数组包含具有多个属性值的构造函数的实例。

我正在使用逻辑AND运算符来确保满足2个条件,但是我不断收到消息Uncaught SyntaxError:

  

带有第二个逻辑条件运算符的意外令牌。

我以前曾经使用过它,从来没有遇到过这个问题,所以现在不明白为什么?我仍在学习Javascript,但这似乎应该很简单?

我尝试删除该消息引发的运算符,但这使我处于一种状况。

class Streets {
    constructor(name, area) {
        this.name = name;
        this.area = area;
    }
}

const street1 = new Streets('Brookwood Glen', 500);
const street2 = new Streets('Abbey Street', 1500);
const street3 = new Streets('Grafton Street', 3000);
const street4 = new Streets('Drury Street', 5000);

const totalStreets = [street1, street2, street3, street4];

function getStreetSize() {
    for(let cur of totalStreets) {
        if(cur.area > 0 && <= 500) { //This line is where I get the error message
            console.log(`${cur.name} has a length of ${cur.size}m and is a tiny street.`);
        } else if(cur.area > 500 && =< 1000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a small street.`);
        } else if(cur.area > 1000 && =< 1500) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a normal street.`);
        } else if(cur.area > 1500 && =< 2000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a big street.`);
        } else if(cur.area > 2000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a huge street.`);
        } else {
            console.log(`${cur.name} is a normal street`);
    }
}
}

我期望for循环遍历'totalStreets'数组中的元素,并评估'area'值是否在2个条件之间,并将相应的语句输出到控制台,但这不是让我使用小于/大于运算符。

2 个答案:

答案 0 :(得分:2)

您需要在AND的 each 端具有有效的表达式。

=< 1000不是有效的表达式,缺少左侧。

您不能在另一个表达式上暗示=<的{​​{1}}中LHS的LHS的值。您必须明确声明。

>

答案 1 :(得分:-2)

您需要将cur.area <= 500放在&&之后

您还应该将=<替换为<=