@位运算符-学习
尝试直接开始看文档学习
/* 笔记:
1.constructor 属性 返回构造器的属性方法组成
2.typeof 属于运算符并始终返回字符串,运算符没有数据类型
3. null 和 undefined 转为逻辑都为false
js 位运算符 大多主要用于数值/无符号的二进制运算
1. & 返回false为主的 如 turn & false 数值都为1的时候返回1 数值有一个不为1的时候,返回不为1的值
var a=1&5; 所有的位都为1的时候,最后的结果才为1,1的二进制位1,5的二进制位101,只有最后一位结果会为1,所以最后结果为1。
2. | 返回true为主 如turn | false 数值都为1的时候返回1 数值有一个不为1的时候,返回不为1的值
var a=1|6; 运算只要有一位为1,最后的结果就是1,1的二进制为1,6的二进制位110,最后结果为111,就是7。
3. ~ 非 var a=~5 非运算其实就是把这个数的二进制取反再减去1。
4. ^ 亦或 两边不相同的时候结果为1 相同时为0
var a=1^5; ^运算符只要两个位不相同,结果就为1,1的二进制为1,5的二进制为101,最后的结果为100,就是4了
5.<<左移 在二进制中 向左移动一位,在尾部用0补足
6.>>右移 在二进制中 向右移动一位,在头部用0补足
7.>>> 二进制从头开始 整体右移 >>> 8 表示 头部空出8位 用0补足 其余的整体右移 之前的二进制尾部8位舍弃
*/
function a(s) {
return s.constructor.toString(); //返回构造器的属性方法
}
console.log(a([1, 2, 3]));
var b = new Date('2020/8/20'); //转换成数字类型时 自动转为毫秒数
console.log(Number(b) === b.getTime());
//js 位运算符
console.log('js 位运算符');
console.log(5 & 3); //返回1 二进制
console.log(5 | 3); //返回7 二进制重新转换后
console.log('a' | 'b'); //返回 0 false
console.log([1, 2, 3] | [3, 2, 1]); //返回 0 false
console.log(5 ^ 3); //返回6 二进制重新转换后
console.log('a' ^ 'b'); //返回 0 false
console.log([1, 2, 3] ^ [3, 2, 1]); //返回 0 false
console.log(~3); //返回-4 二进制重新转换后
console.log(~'b'); //返回 -1
console.log(~[3, 2, 1]); //返回 -1
console.log(~ 7); //返回 8