You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Теперь, чтобы понять, есть ли в доступе `editor` нужный доступ, например управление правами -- достаточно применить к нему побитовый оператор И (`&`) с соответствующей константой.
@@ -567,7 +567,7 @@ alert(editor & ACCESS_ARTICLE_EDIT); // 8, доступ есть
567
567
Например, проверим, есть ли права на просмотр ИЛИ изменение товаров. Соответствующие права задаются битом `1` на втором и третьем месте с конца, что даёт число `00110` (=`6` в 10-ной системе).
568
568
569
569
```js
570
-
var check = ACCESS_GOODS_VIEW | ACCESS_GOODS_EDIT; // 6, 00110
Как видно из последнего равенства, `~n == 0` только если `n == -1`. Поэтому можно легко проверить равенство `n == -1`:
626
626
627
627
```js run
628
-
var n =5;
628
+
let n =5;
629
629
630
630
if (~n) { // сработает, т.к. ~n = -(5+1) = -6
631
631
alert( "n не -1" ); // выведет!
632
632
}
633
633
```
634
634
635
635
```js run
636
-
var n =-1;
636
+
let n =-1;
637
637
638
638
if (~n) { // не сработает, т.к. ~n = -(-1+1) = 0
639
639
alert( "...ничего не выведет..." );
@@ -643,7 +643,7 @@ if (~n) { // не сработает, т.к. ~n = -(-1+1) = 0
643
643
Проверка на `-1` пригождается, например, при поиске символа в строке. Вызов `str.indexOf("подстрока")` возвращает позицию подстроки в `str`, или `-1` если не нашёл.
644
644
645
645
```js run
646
-
var str ="Проверка";
646
+
let str ="Проверка";
647
647
648
648
if (~str.indexOf("верка")) { // Сочетание "if (~...indexOf)" читается как "если найдено"
0 commit comments