前后端规定一个二进制位代表一个数据类型,通过此数字的二进制位来获取、判断数据。
可以运用在参数传递异常复杂的项目,本例只给出一个参数,接口还有几十个参数;
后端给出接口:
/api/?choose=${number}&...
如下图接口文档:choose给出值,若传递3则请求赛事=1
和匹配=2
的数据,组合使用。
组合参数
choose给出值转为二进制分析:
1的二进制00000001
2的二进制00000010
4的二进制00000100
由给出的choose值1、2、4...可知,choose即二进制位从右到左有值的体现,choose组合可以使用|运算符;按位或:位数上一个为1即全部为1;
例:我们需要1和2和4的数据
1 | 2 | 4
# 二进制表示
00000001
|
00000010
|
00000100
得出结果 00000111,十进制为7,后端接口:
let choose = 1 | 2 | 4
// choose = 7
let url = /api/?choose=${choose}`
后端返回数据的情况
后端返回数据会给出flags属性,flags的值即由choose组合而成,而前端需要判断是否有某个数据(如choose=2的数据);按位与:位数上两个为1即为1
例:前端判断是否有2(choose为2的数据)
if(3 & 2) > 0 {有2的数据,可以执行对2数据的操作}
# 二进制表示
00000011
&
00000010
得出结果 00000010,十进制为2,即大于0;
1
1
1
1
1
1
1
1
1
1