ФорумПрограммированиеJavaScript → А знаете ли вы, что...

А знаете ли вы, что...

  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 25 февраля 2010 г. 5:18, спустя 57 секунд

    Baboot, нет

    var i=0;
    i = i++ + ++i;
  • Baboot

    Сообщения: 440 Репутация: N Группа: Адекваты

    Spritz 25 февраля 2010 г. 5:21, спустя 2 минуты 54 секунды

    ребус не иначе
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 4 марта 2010 г. 1:36, спустя 6 дней 20 часов 15 минут

    поехали дальше

    http://wtfjs.com/

    объясняю пример про

    ++[[]][+[]] === 1


    оператор + вызывает метод .toString() дальше идет игра с приоритетностью операторов


    ++[[]][+[]] === 1
    ++[[]]["0"] === 1
    ++[] === 1 // нельзя вызвать напрямую потому что инкремент может быть только у инта, но доставая из массива нулевой элемент [] он кастуеться к булену false (или наверное даже через каст к стрингу "" кастуеться инт 0)
    ++0 === 1
    // profit

Пожалуйста, авторизуйтесь, чтобы написать комментарий!