Skip to content

Commit 5c90321

Browse files
authored
Merge pull request #1422 from Terro216/patch-1
Update article.md
2 parents d5c302a + 5830e8e commit 5c90321

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

1-js/99-js-misc/04-bitwise-operators/article.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@
120120
Например:
121121

122122
```js run
123-
var access = parseInt("11000", 2); // получаем число из строки
123+
let access = parseInt("11000", 2); // получаем число из строки
124124
125125
alert( access ); // 24, число с таким 2-ным представлением
126126
127-
var access2 = access.toString(2); // обратно двоичную строку из числа
127+
let access2 = access.toString(2); // обратно двоичную строку из числа
128128
129129
alert( access2 ); // 11000
130130
```
@@ -536,19 +536,19 @@ alert( 100 >> 3 ); // 12, деление на 2 три раза, целая ча
536536
Как правило, доступы задаются в виде констант:
537537

538538
```js no-beautify
539-
var ACCESS_ADMIN = 1; // 00001
540-
var ACCESS_GOODS_EDIT = 2; // 00010
541-
var ACCESS_GOODS_VIEW = 4; // 00100
542-
var ACCESS_ARTICLE_EDIT = 8; // 01000
543-
var ACCESS_ARTICLE_VIEW = 16; // 10000
539+
const ACCESS_ADMIN = 1; // 00001
540+
const ACCESS_GOODS_EDIT = 2; // 00010
541+
const ACCESS_GOODS_VIEW = 4; // 00100
542+
const ACCESS_ARTICLE_EDIT = 8; // 01000
543+
const ACCESS_ARTICLE_VIEW = 16; // 10000
544544
```
545545

546546
Из этих констант получить нужную комбинацию доступов можно при помощи операции `|`.
547547

548548
```js
549-
var guest = ACCESS_ARTICLE_VIEW | ACCESS_GOODS_VIEW; // 10100
550-
var editor = guest | ACCESS_ARTICLE_EDIT | ACCESS_GOODS_EDIT; // 11110
551-
var admin = editor | ACCESS_ADMIN; // 11111
549+
const guest = ACCESS_ARTICLE_VIEW | ACCESS_GOODS_VIEW; // 10100
550+
const editor = guest | ACCESS_ARTICLE_EDIT | ACCESS_GOODS_EDIT; // 11110
551+
const admin = editor | ACCESS_ADMIN; // 11111
552552
```
553553

554554
Теперь, чтобы понять, есть ли в доступе `editor` нужный доступ, например управление правами -- достаточно применить к нему побитовый оператор И (`&`) с соответствующей константой.
@@ -567,7 +567,7 @@ alert(editor & ACCESS_ARTICLE_EDIT); // 8, доступ есть
567567
Например, проверим, есть ли права на просмотр ИЛИ изменение товаров. Соответствующие права задаются битом `1` на втором и третьем месте с конца, что даёт число `00110` (=`6` в 10-ной системе).
568568
569569
```js
570-
var check = ACCESS_GOODS_VIEW | ACCESS_GOODS_EDIT; // 6, 00110
570+
const check = ACCESS_GOODS_VIEW | ACCESS_GOODS_EDIT; // 6, 00110
571571
572572
alert( admin & check ); // не 0, значит есть доступ к просмотру ИЛИ изменению
573573
```
@@ -625,15 +625,15 @@ alert( 1.1 + 1.2 ^ 0 ); // 2, сложение выполнится раньше
625625
Как видно из последнего равенства, `~n == 0` только если `n == -1`. Поэтому можно легко проверить равенство `n == -1`:
626626

627627
```js run
628-
var n = 5;
628+
let n = 5;
629629

630630
if (~n) { // сработает, т.к. ~n = -(5+1) = -6
631631
alert( "n не -1" ); // выведет!
632632
}
633633
```
634634

635635
```js run
636-
var n = -1;
636+
let n = -1;
637637

638638
if (~n) { // не сработает, т.к. ~n = -(-1+1) = 0
639639
alert( "...ничего не выведет..." );
@@ -643,7 +643,7 @@ if (~n) { // не сработает, т.к. ~n = -(-1+1) = 0
643643
Проверка на `-1` пригождается, например, при поиске символа в строке. Вызов `str.indexOf("подстрока")` возвращает позицию подстроки в `str`, или `-1` если не нашёл.
644644

645645
```js run
646-
var str = "Проверка";
646+
let str = "Проверка";
647647

648648
if (~str.indexOf("верка")) { // Сочетание "if (~...indexOf)" читается как "если найдено"
649649
alert( 'найдено!' );

0 commit comments

Comments
 (0)