位运算:会先转成二进制再执行左移还是右移或者取反
<<左移,数字往左移(变大)
右移,数字往右移(变小)
~:是js里的按位取反操作符 , ~~ 就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是true === 1,false === 0。 ~~"" == 0 ~~[] == 0
// 10进制转8进制,结果是字符串 var number=24; console.log(number.toString(8)); // 8进制转10进制,结果是数值 var a='24'; console.log(parseInt(a,8));
### 5.1 字符串和数值进行比较
console.log("123"==123);//true 字符串会自动转为Number console.log("123"===123);//false 要值和数据类型都一样菜能相等 console.log("123">321);//false console.log("321A">123); //false 不是全数字,无法转成Number,会自动转成NaN,出现NaN一般就是false console.log(NaN==NaN);//false
### 5.2.undefined(null的派生子类)和null比较
console.log(undefined==null);//true console.log(undefined===null);//false
### 5.3.字符串和字符串比较(拿第一位的ASCII码进行比较)
console.log('a'>'b');//false console.log('a'<'b');//true console.log('ba'<'abz');//false 比较的是第一位的大小
### 5.4.布尔类型的值和null进行比较
console.log(true>null);//true 1>0 console.log(true>undefined);//false undefined会转成NaN,有NaN为false
### 5.5.先转换数据类型再比较
console.log(Number(true)==1);//true console.log(Number(true)===1);//true console.log(Boolean(0)===false);//true 0为false