js之运算符(关系运算符)

  关系运算符用于测试两个值之间的关系,根据关系是否存在而返回true或者是false.关系表达式总是返回一个布尔值。

  具有如下8个关系运算符:大于(>),小于(<),小于等于(<=),大于等于(>=),相等(==),不等(!=),恒等(===),不全等(!==)。从下面几个方面来分析:

  一、相等和不相等运算符

    “===”:恒等运算符,也称是严格相等运算符,只有在无需类型转换运算数就相等的情况下才为true.

 <script>
        console.log(‘2‘ === 2);          //false  二者的类型不同
        console.log(undefined === undefined);  //true 二者的类型与值都相同
        console.log(NaN === NaN);        //false  NaN和任何值都不相等包括NaN
        console.log(‘abc‘ === ‘acb‘);      //false 字符串的相等,要长度和相应位置一样才相等
        console.log([] === []);          //false 对象的相等必须是引用的相等才可以
        console.log(10 === 0xa);         //true 转换成十进制进行比较
    </script>

  "==":相等运算符和“===”恒等运算符相类似,但是它没有那么的严格,如果两个操作数不是同一类型,它会进行转换后再进行比较是否是相等。

     当操作数类型一样时,比较的规则和恒等运算符一样,都相等才相等;

     当操作数类型不一样时,会按如下规则来判定:

        如果一个值是对象类型,另一个是原始类型,则对象类型会通过valueOf()方法进行转换,转换成原始值,如转换的不是原始值,则通过toString()方法转换再进行比较;

        在对象转换为原始值后,如果两个操作数是字符串,则进行字符串的比较,如果里面有一个操作符不是字符串,那两个操作数通过Number()方法进行转换,转成数字进行比较.

 <script>
        console.log(‘abc‘ == ‘abc‘);    //true    类型相等,值也相等,当然相等
        console.log(NaN == NaN);      //false   NaN和任何者不等
        console.log([] == []);        //false
        console.log(10 == 0xa);       //true    转换成十进制进行比较是否相等
        console.log(true == 0);       //false   true转换成数字为1
        console.log(true == ‘1‘);     //true
        console.log([1] == 1);       //true
        console.log(true == 1);      //true
        console.log(null == undefined); // true   null和undefined是相等的
        console.log(0 == null);      // false  0和null不等
        console.log(‘‘ == false);    //true    空字符串转成0和false相等
    </script>

  "=": 可以看成是得到或者是赋值。作用是把等号右边的值赋予等号左边的变量或属性。

  赋值操作符的结合性是从右到左,也就是说,如果一个表达式中出现了多个赋值运算符,运算顺序是从右到左。

  “!==”:恒不等运算符,又称严格不等运算符。操作数的比较过程与恒等运算符相同,结果取反就可。

  “!=”:不相等运算符。它的操作数比较的过程和与相等运算符相同,结果取反即可。

    <script>
        console.log([] !== []);     //true
        console.log(1 !== true);    //true
        console.log(‘1‘ !== 1);    //true
        console.log(NaN !== NaN);    //true

        console.log(‘1‘ != true);    //false
        console.log(null != undefined);//false
        console.log(NaN != ‘‘);     //true
    </script>

  二、比较运算符

    它用来检测两个操作数的大小关系。有大于(>),小于(<),小于等于(<=),大于等于(>=)。

    1、大于运算符

    大于运算符的操作数可能是任意类型,然而,只有数字和字符串才能真正执行比较操作,因此那些不是数字和字符串的操作数都将进行类型转换。规则如下:

    如果操作数是对象,则这个对象将先使用valueOf()转换成原始值,如果结果还不是原始值,则再使用toString()方法转换;

     在对象转换为原始值之后,如果两个操作数都是字符串,则按照字母表的顺序对两个字符串进行比较,这里提到的字母表顺序是指组成这个字符串的16位unicode字符的索引顺序;

     在对象转换为原始值之后,如果至少有一个操作数不是字符串,则两个操作数都转换成数字进行比较。

    需要注意的是Javascript字符串是一个由16位整数值组成的序列,字符串的比较也只是两个字符串中的字符的数值比较,由unicode定义的字符编码和任何特定语言或者本地语言字符集中的传统字符编码顺序不尽相同。字符串比较是区分大小写的,所以一般首先会将字符串通过String.toLowerCase()或者是String.toUpperCase()做大小写的转换。

    2、大于等于运算符

    大于等于运算符并不依赖于大于或等于运算符的比较规则,而是遵循小于运算符的比较规则,结果取反

    3、小于等于运算符

    小于等于运算符(<=)并不依赖于小于或等于运算符的比较规则,而是遵循大于运算符的比较规则,结果取反。

    4、小于运算符

    小于运算符(<)用于比较两个操作数,如果第一个操作数小于第二个操作数,则小于运算符的计算结果为true,否则为false。

  三、in运算符

    in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。如果右侧的对象有一个名为左操作数值的属性名,那么表达式返回true.

    <script>
        var point = {
            x: 1,
            y: 2
        }                 //定义一个对象
        console.log("x" in point); //true 对象里有一个名为”x"的属性
        console.log("d" in point); //false对象里没有一个名为”d"的属性
    </script>

  四、instanceof运算符

    instanceof运算符希望左操作是一个对象,右操作数标识对象的类。如果左侧的对象是右侧类的实例,则返回true,否则为false.

    <script>
        var d = new Date(); //通过Date()构造函数来创建一个新的对象
        console.log(d instanceof Date); //true d是由Date()创建的
        console.log(d instanceof Object);//true 所有的对象都是Object的实例
        console.log(d instanceof Number);//false d不是一个Number对象
    </script>

    

原文地址:https://www.cnblogs.com/davina123/p/11806518.html

时间: 2024-11-15 00:50:27

js之运算符(关系运算符)的相关文章

javascript运算符——关系运算符

× 目录 [1]恒等 [2]相等 [3]大于[4]小于 前面的话 关系运算符用于测试两个值之间的关系,根据关系是否存在而返回true或false,关系表达式总是返回一个布尔值,通常在if.while或for语句中使用关系表达式,用以控制程序的执行流程 javascript提供了===.!==.==.!=.<.<=.>.>=8个关系运算符,本文将分为4类介绍关系运算符 恒等运算符 恒等运算符'===',也叫严格相等运算符,首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型转

C语言基础学习运算符-关系运算符

比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是一种整数类型. 程序常常使用含有关系运算符的表达式进行分支和循环操作.我们将在分支和循环的章节中具体学习. C语言提供6种关系运算符,如下所示: 看个简单的实例吧: #include <stdio.h> int main(void) { int a = 5; int b = 3; /*根据变量a和

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

C语言:关系运算符

<    小于运算符 <=  小于等于运算符 >    大于运算符 >=  大于等于运算符 ==   等于运算符 !=   不等于运算符 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”:如果条件不成立,结果就为0,也就是“假”. 1.关系运算符中==.!=的优先级相等,<.<=.>.>=的优先级相等,且前者的优先级低于后者 例如2==3>1 :先算3>1,条件成立,结果为1.再计算2==1,条件不成立,结果为0.因此2==3

C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

C语言基础第二课 -----布尔类型,关系运算符,逻辑运算符,

/* 布尔类型: 1.c89没有布尔类型,c99有布尔类型.c工程支持c89,oc工程c99. 2.两种数值: bool true(真)   false(假) C语言 BOOL YES(真)      NO(假)   OC语言 3.真和假的表示 C语言   非0即为真  0就是假 OC语言   YES定义为1  NO定义为0 4.输出转换符是%d 5.作用:用于分支结构和循环的判断. */ //    BOOL a1 = YES; //    BOOL a2 = NO; //    printf

5.Java算术运算符和关系运算符详解

运算符就是在用变量或常量进行运算时,经常需要用到的符号,目前常用的总共有十种:算术运算符.关系运算符.逻辑运算符.位运算符.移位运算符.赋值运算符.三元运算符.逗号运算符.字符串运算符.转型运算符.下面将会对每种运算符结合实例作详细的讲述. 一.算术运算符 算术运算符总共有 7 种:“+”.“ - ”.“*”.“/”.“%”(余数).“++”(自加).“——”(自减). 运算符的精度: 当使用运算符把两个操作数结合到一起时,首先会将两个操作数转化成相同类型的数据. 两个操作数中如有一个是 dou

十一、 BOOL类型、分支结构和关系运算符

BOOL类型:表示非真即假.只有两个值:YES和NO,而二进制只识别二进制数,所以,将YES替换为“1”,NO替换为“0” BOOL数据类型占一字节的空间内存 BOOL数据类型输出为:%lu:输入为:%s 关系运算符:“<,<=,>,>=,==,!=”判断两个值是否相等,一定要用“==”,结果值用BOOL存储. 优先级:[<,<=,>,>=(属同级运算符)] > [==,!=(属同级)] 运算符优先级:算术运算符>关系运算符>逻辑运算符&g

【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加: #!/bin/bash val=`expr 2 + 2` echo "Total value : $val" 运行脚本输出: Total value : 4 两点注意: 表达式和运算符之间要有空格,

shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. (3)条件表达式要放在方括号之间,变量与符号之间必须以空格隔开,命令才可以识别: (4)乘号(*)在shell中有特殊含义,作为乘法符号时,要在*前边必须加反斜杠(\)才能实现乘法运算: (5)关系运算符采用的是英文字母的缩写,等于(-eq,equal),不等于(-ne,not equ