Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Bitwise Operators (примеры) (https://javascript.ru/forum/offtopic/46352-bitwise-operators-primery.html)

ruslan_mart 07.04.2014 16:47

Цитата:

Сообщение от dmitry111
Поделитесь примерами с использованием побитовых операторов.

Иногда полезно для сокращения на пару символов. :D

var str = 'Привет!';

if(~str.indexOf('и')) {
   alert('В строке есть буква "и"');
}


/*Преобразование в противоположное значение, из true в false и наоборот*/

var myBool = false;

myBool ^= 1; //Аналогично myBool = !myBool;

Octane 07.04.2014 17:01

Цитата:

Сообщение от Ruslan_xDD
~str.indexOf

Лучше полифил для String.prototype.contains запилить ;)

nerv_ 07.04.2014 17:16

Цитата:

Сообщение от Octane
Лучше полифил для String.prototype.contains запилить

ибо наглядней

Pavel M. 07.04.2014 17:20

В asm.js активно используются http://kripken.github.io/mloc_emscripten_talk/#/20

Sweet 07.04.2014 17:46

Цитата:

Сообщение от monolithed
var is_browser = false;
is_browser |= typeof window !== 'undefined'

Видел такое. Я называю это горе от ума. Тут даже любимого говнокодерами "так короче" нет)

monolithed 07.04.2014 18:33

Цитата:

Сообщение от Sweet
Видел такое. Я называю это горе от ума. Тут даже любимого говнокодерами "так короче" нет)

Ну как сказать, короче:

var is_browser = 0;

if (typeof window !== 'undefined') {
   is_browser = 1;
}


Если флагов много, то можно и профит разглядеть :)

Дзен-трансгуманист 07.04.2014 20:07

Цитата:

Сообщение от dmitry111
return ~~str;

Цитата:

Сообщение от monolithed
testnum | 0


Как выстрелить себе в ногу на переполнении int32
alert((~~1e10) + ' ' + (1e10|0))

monolithed 07.04.2014 20:55

Цитата:

Сообщение от Дзен-трансгуманист
Как выстрелить себе в ногу на переполнении int32

Все верно, незнание этих правил не освобождает от ответственности :)

Sweet 07.04.2014 22:19

Цитата:

Сообщение от monolithed
Если флагов много, то можно и профит разглядеть

Не, флаги - это ништяк. Только пример с window к флагам не имеет отношения. А насчет короче, то так:
var is_browser = typeof window !== 'undefined';

короче, чем
var is_browser = 0;
is_browser |= typeof window !== 'undefined'

Gozar 08.04.2014 00:03

Цитата:

Сообщение от Sweet
короче

Ловушка для сознания. Это слово нужно забыть и не вспоминать без крайней необходимости, то есть почти никогда.


Часовой пояс GMT +3, время: 04:37.