换位而不是初始声明

ToT*_*oTa 1 javascript c# bit-shift

我在JavaScript中遇到了不寻常的声明(我也在C#中看过这个):

var x = 1 << 0; // output: 1
Run Code Online (Sandbox Code Playgroud)

为什么以及何时应该使用它?

编辑:我在上下文中看到过这样的声明:

var orderByName = 1 << 0;
var orderByLastName = 1 << 1;
var orderByMiddleName = 1 << 2;
Run Code Online (Sandbox Code Playgroud)

geo*_*org 7

如果您有一组数字标记要一起使用,那么使用移位声明它们会更清晰

var S_READ   = 1 << 0;
var S_WRITE  = 1 << 1;
var S_APPEND = 1 << 2;
var S_CREATE = 1 << 3;
Run Code Online (Sandbox Code Playgroud)

而不是明确地写出两个的权力(1,2,4,8等)

我的猜测是你1 << 0在类似的背景下看到了这一点.