代码改变世界

js运算符

2019-10-26 14:56  张海峰999  阅读(123)  评论(0编辑  收藏  举报

基本数据类型

string  number  null undefined  boolean

 例:var str = "天气真好",
            num = 10,
            boo = true,
            und,
            nu = null;
str+num ---> 天气真好10  数据类型:string
str+boo ---> 天气真好true  数据类型:string
str+und ---> 天气真好undefined  数据类型:string
str+nu ---> 天气真好null  数据类型:string
 
num+boo ---> 11 数据类型:number
num+und --->NaN 数据类型:number
num+nu --->10 数据类型:number
 
nu+und ---> NaN 数据类型:number
nu+boo ---> 1 数据类型:number
 
 
数据转换
toString() :可将其它类型转为字符串类型,但对nullundefined不适用
Number() 可以将任意类型的值转化成数值 Number(null) ---> 0    Number(undefined) ---> NaN
parseInt() 将数据转换为number类型的整数,碰到第一个非整数的字符停止转换,无法转换时 返回NaN
parseFloat() 将数据转换为number类型的浮点数,碰到第一个非小数点或数字停止转换
 
 
var num1 = "120.120"; // 120  number
        var num2 = "aaa120.120"; // NaN  number
        var num3 = "12aaa0.120"; // 12  // number
        console.log(parseInt(num1));
        console.log(parseInt(num2));
        console.log(parseInt(num3));

        // parseFloat
        var x1 = '3.14159';
        var x2 = 'aaa3.14159';
        var x3 = '3aaa.14159';
        console.log(parseFloat(x1), typeof(x1)); // 3.14159   string
        console.log(parseFloat(x2), typeof(x2)); // NaN   string
        console.log(parseFloat(x3), typeof(x3)); // 3  string 

        var y1 = '3.14';
        var y2 = 'aa3.14';
        var y3 = '3.aa14'
        y1 = parseFloat(y1);
        y2 = parseFloat(y2);
        y3 = parseFloat(y3);
        console.log(y1, typeof(y1)) // 3.14  number
        console.log(y2, typeof(y2)) // NaN  number
        console.log(y3, typeof(y3)) // 3  number
 
逻辑运算符
&& 逻辑与
||  逻辑或
! 逻辑非

运算方法:

真前假后

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

 

假前真后

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

位运算
将这个数转换为二进制数然后再做运算
&  按位与   判断奇偶 同时为一,才为1,否则为0
var a  = 7;console.log(a & 1)    1 结果为1 则为 奇数
var a  = 8;console.log(a & 1)    0  结果为0 则为 偶数
|  按位或   向下取整  只要有一个为1时 ,为1 ,否则为0
  var a = 3.5;
  console.log(a | 0) --- >  3
 
^ 异或    交换两个数的位置   有且只有一个为1时,才为1 , 否则为0
var x = 10,
       y = 20;
        x = x ^ y; // x ^= y
        y = x ^ y; //  y ^= x
        x = x ^ y; // x^=y