Не выполняется условие "if-then-else"


#1

Никак не могу разобрать, почему “пролетаю мимо” указанной конструкции if-then-else:

//global variables
kids_dim_direction = "up";
//Kids_dim up_down
defineRule("noo_switch_2-1", {
    whenChanged: "noolite_rx_0xa950/state",
    then: function(newValue, devName, cellName) {
        log("step 1, " + kids_dim_direction);
        if (kids_dim_direction = 'up') {
            log("step 2");
            kids_dim_up("wb-dac/MOD1_O2", kids_dim_direction);
        } else
        //    if ( kids_dim_direction = "down" )
        {
            log("step 2else");
            kids_dim_down("wb-dac/MOD1_O2", kids_dim_direction);
        }
        log("step 3, " + kids_dim_direction);
    }
});
Functions

на всякий случай, привожу ещё функции, с которыми, вроде бы, всё в порядке:

function kids_dim_down(dac, dim_direction_variable) {
    if (dac >= "1000") {
        log("step 2else_inside");
        dev[dac] = dev[dac] - 1000;
        log(dev[dac]);
    } else {
        dev[dac] = 0;
        kids_dim_direction = "up";
    }
}

function kids_dim_up(dac, dim_direction_variable) {
    if (dac <= "9000") {
        log("step 2_inside");
        dev[dac] = dev[dac] + 1000;
        log(dev[dac]);
    } else {
        dev[dac] = 10000;
        kids_dim_direction = "down";
        log(dev[dac] + ", " + kids_dim_direction)
    }
}

Вот что получается при выводе:

Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 1, down
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 2
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] 10000, down
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 3, down

т.е. переменная kids_dim_direction равна “down”, но я всё равно попадаю при проверке в первое условие, а во второе никогда не попадаю.


#2

сравнение - это ==

просто = - это оператор присваивания


#3

Точно, я почему-то пересмотрел много-много примеров и нигде не увидел оператора “==”, везде в выражениях “if” оператор присваивания, т.е. проверяется успешность или неуспешность присваивания… Спасибо за комментарий!!


Яндекс.Метрика