ФорумПрограммированиеJavaScript → Байтодроч в JS, трюки, обфускация и прочее

Байтодроч в JS, трюки, обфускация и прочее

  • adw0rd

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

    Spritz 16 апреля 2015 г. 20:20

    jed/140bytes [github.com]

    а что вам больше понравилось?

    Спустя 63 сек.

    Use A + 0.5 | 0 instead of Math.round for positive numbers

    Math.round(a) // before
    a+.5|0        // after
    

    Also, for negative number just change +.5|0 to -.5|0

    Math.round(-a) // before
    -a-.5|0        // after
    

    Спустя 20 сек.

    Exploit the "falsiness" of 0

    When comparing numbers, it's often shorter to munge the value to 0 first.

    a==1||console.log("not one") // before
    ~-a&&console.log("not one")  // after
    

    Спустя 62 сек.

    Use the little-known .link method

    Strings have a built-in .link method that creates an HTML link. This is used in @jed's linkify function.

    html="<a href='"+url+"'>"+text+"</a>" // before
    html=text.link(url)                   // after
    

    Strings also have several other methods related to HTML, as documented here.

    Спустя 43 сек.

    String coercion with array literal []

    ''+1e3+3e7 // before
    [1e3]+3e7  // after
    

    Спустя 41 сек.

    Omit () on new calls w/o arguments

    new Object is equivalent to new Object()

    now = +new Date() // before
    now = +new Date   // after
    

    + получаем сразу timestamp

    Спустя 29 сек.

    Use []._ instead of undefined

    ""._, 1.._ and 0[0] also work, but are slower. void 0 is faster than undefined but longer than the alternatives.

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Sinkler

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

    Spritz 16 апреля 2015 г. 20:55, спустя 34 минуты 50 секунд

    чёт они совсем дрочеры там

    ((a=b.pop(),b.pop())+c+a) // before
    (b.pop(a=b.pop())+c+a)    // after
    
  • phpdude

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

    Spritz 16 апреля 2015 г. 22:30, спустя 1 час 34 минуты 44 секунды

    бояните

    Сапожник без сапог
  • adw0rd

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

    Spritz 16 апреля 2015 г. 23:10, спустя 40 минут 43 секунды

    @phpdude, раз бояним, чего ты ссылку на пыхе не размещал?

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 16 апреля 2015 г. 23:19, спустя 8 минут 46 секунд

    @phpdude, раз бояним, чего ты ссылку на пыхе не размещал?

    @adw0rd, да на хабре эта тема 100500 раз была

    Сапожник без сапог
  • adw0rd

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

    Spritz 16 апреля 2015 г. 23:31, спустя 11 минут 33 секунды

    @phpdude, не читаю хабр, только пиху

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 16 апреля 2015 г. 23:33, спустя 2 минуты 19 секунд

    @adw0rd, а, ну я тоже в общем то.

    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 апреля 2015 г. 9:36, спустя 10 часов 2 минуты 59 секунд

    140byt.es - давно видел, изучал, практиковал)

    Спустя 43 сек.

    @Sinkler, фича в том, что бы уложить какую-то плюху в 140 символов, то есть в предел твиттера.

    Высокоуровневое абстрактное говно
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 апреля 2015 г. 10:12, спустя 36 минут 10 секунд

    Вот, например, плюха для выставления окончаний считаемых элементов:
    https://gist.github.com/technobulka/4274964

    Спустя 28 сек.

    Ахуенно сделали вставку гистов :3

    Высокоуровневое абстрактное говно
  • phpdude

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

    Spritz 17 апреля 2015 г. 10:57, спустя 44 минуты 43 секунды

    Ахуенно сделали вставку гистов :3

    @Stasovsky, а то еб

    Сапожник без сапог
  • dallone

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

    Spritz 19 апреля 2015 г. 21:05, спустя 2 дня 10 часов 8 минут

    @adw0rd, байто-трюки весьма печальны если внезапно на продакшене окажутся нужны большие числа.

    Вот например:

    var a = 9509454234.34
    Math.round(a); // 9509454234
    a+.5|0 // 919519642
    
    о_О
  • adw0rd

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

    Spritz 19 апреля 2015 г. 22:04, спустя 58 минут 42 секунды

    @dallone, с большими числами в жс вообще беда, приходится в строках хранить или в флоатах

    https://smappi.org/ - платформа по созданию API на все случаи жизни

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