入门 - 比较运算符

  • 作者:KK

  • 发表日期:2016.2.7


有一些软件有积分功能的,比如积分到达5000就送你一个东西,所以这时候就要用你的积分和5000进行比较,看看是不是到达了,到达了就送东西,这种场合下就需要比较运算符了

比如

var a = 1 > 2; //比较1是不是大于2
alert(a);

会输出false,上面的代码意思是比较一下1 > 2是不是成立,如果成立,就得到结果true,如果不成立则得到false,然后将这个结果存到内存变量a里面,由于1并不大于2,所以为false

回想我们之前所说的变量类型,有个类型就是布尔值类型,这个类型只有true和false两个值,代表"是"和"不是"之类的意思

比较运算的结果都是布尔值,所以比较结果就只有true和false两个可能性而已

比较运算符一共有7种,分别是:

  • >大于比较:比较左边的数字是不是大于右边,例:

    var a = -121 > 2; //注意前面是负数哦
    alert(a); //false
    
    var b = 2 > 2;
    alert(b); //false
    
    var c = 3 > 2;
    alert(c); //true
    
  • >=大于等于比较:比较左边的数字是不是大于或者等于右边,例:

    var a = 0 >= 2;
    alert(a); //false
    
    var b = 2 >= 2;
    alert(b); //true
    
    var c = 3 >= 2;
    alert(c); //true
    

    但是要注意的是符号书写方式,必须是>=这样写,如果写成=>这样是非法的无法运行的哦!

  • <小于比较:和>大于比较相反,我就不举例子了

  • <=小于等于比较:和>=大于等于比较相反,我就不举例子了

  • !=不等于比较:比较符号左边的值跟右边的值是不是不相等,例:

    var a = 1 != 2;
    alert(a); //true,因为1与2是不相等的呀
    
    var b = 2 != 2;
    alert(b); //false,因为两个2都是一样的数字,所以是相等的才对
    
    var c = 55;
    var d = c != 9;
    alert(d); //true,因为内存变量c的值是55,所以55与9比较起来就是不相等的
    

    其实这个符号不只是比较数字是否相同而已,还能比较字符是否相同,或者一个字符和一个数字是否相同,例如:

    var a = '字符串1' != '字符串2';
    alert(a); //true
    
    var b = 'abc' != 'abc'
    alert(b); //false,因为上面两个字符串是相同的嘛
    
    var c = 2 != 'abc';
    alert(c); //true,正因为数字和字符串是不同的内容
    
    var d = true != false;
    alert(d); //true,因为两个布尔值是不同的值
    
    var e = true != true;
    alert(e); //false,因为两个都是true,相同的哦
    
    var f = true != 'abc';
    alert(f); //true,一个是布尔值true,一个是字符串值abc,肯定是不同咯,所以为true
    
  • ==等于比较:等于比较和不等于比较是相反的,它比较符号左边的值和右边的值是不是相等的,不要求是数字,可以是任何值,例:

    var a = 1 == 2;
    alert(a); //false,原因很简单,因为1和2是不同的数值,所以1不等于2
    
    var b = 2 == 2;
    alert(b); //true,因为两个2都是一样的数字,所以是相等的
    
    var c = 55;
    var d = c == 9;
    alert(d); //false,因为内存变量c的值是55,所以55与9比较起来其实是不相等的
    
    var e = '字符串1' == '字符串2';
    alert(e); //false
    
    var f = 'abc' == 'abc'
    alert(f); //true,两个字符串是一样的abc内容
    
    var g = 2 == 'abc';
    alert(g); //false,数字2和字符串abc是不同的
    
    var h = true == false;
    alert(h); //false,因为两个布尔值是不同的值
    
    var i = true == true;
    alert(i); //true,因为两个都是true,相同的哦
    
    var j = true == 'abc';
    alert(j); //false,一个是布尔值true,一个是字符串值abc,所以是不相同的,所以为false
    
  • ===严格的等于比较,它和等于比较是差不多的,但是会比等于比较更加严格.

    等于比较时,在比较数字1和字符串1的情况下结果会为true,但在严格比较下就会不为true,因为严格比较时要求值的类型也是一样的,所以数字和字符串的值类型已经不一样,例子:

    var a = 1 == '1';
    alert(a); //true
    
    var b = 1 === '1';
    alert(b); //false,因为用了严格比较,数字1和字符串1是不同的值类型
    
    var c = 1 === 1;
    alert(c); //true,这下数字1和数字1严格比较才是相等
    
    var d = '1' === '1';
    alert(d); //true,字符串也是,反正必须类型相同才可以比较,类型不同都是false
    
    var e = 'aaa' == 'abc';
    alert(e); //false,字符串不一样
    
    var f = 'aaa' === 'abc';
    alert(f); //也是false,这里和普通的等于比较一样,虽然同样是字符串值,但是字符串的内容不同嘛
    

    还有在与布尔值比较时也是要值得注意的,因为true代表的意思,false代表,不是的意思,