js的运算法则
作者:互联网
1. 相加:
- 一个string和number相加,会自动转为string,最后返回的是一个字符串
- 其他的相加返回的是number
2.位运算
位运算:会先转成二进制再执行左移还是右移或者取反
<<左移,数字往左移(变大)
右移,数字往右移(变小)
~:是js里的按位取反操作符 , ~~ 就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是true === 1,false === 0。 ~~"" == 0 ~~[] == 0
3.进制间的转换
// 10进制转8进制,结果是字符串 var number=24; console.log(number.toString(8)); // 8进制转10进制,结果是数值 var a='24'; console.log(parseInt(a,8));
4.计算顺序:
- 先算括号里面的,再算++(--)再进行乘除取余,再进行比较运算,再进行逻辑运算,最后赋值
- 括号不能和++(--)一起使用,不能写在括号旁边
5.比较运算
### 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
标签:console,log,js,123,法则,false,null,true,运算 来源: https://www.cnblogs.com/guolingli/p/16522439.html