`
gudujianxuehu
  • 浏览: 98223 次
  • 来自: ...
社区版块
存档分类
最新评论

javascript运算符详解

阅读更多


1、javascript具有下列种类的运算符:算术运算符;等同运算符与全同运算符;比较运算符;

2、目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符;

3、特殊运算符:条件运算符;typeof运算符;创建对象运算符new;delete运算符;void运算符号;逗号运算符;
 
  算术运算符:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 --
  等同运算符与全同运算符:== 、 ===、 !== 、 !===
  比较运算符:< 、 > 、 <= 、 >=
  字符串运算符::< 、 > 、 <= 、 >= 、 = 、 +
  逻辑运算符:&& 、 ||、 !、
  赋值运算符:=、 +=、 *=、 -=、 /=

   规则:


一、一定要注意传递给运算符的数据类型和返回的数据类型!不同的运算符都期望它的运算数表达式计算出的结果符合某种数据类型。


  例如:对字符串是不能进行乘法运算的,"a" * "b" 是不合法的,但是,在可能的情况下,javascript会把表达式转换成正确的类型,因此,表达式 "3" * "5" 是合法的,javascript将字符串转换成数字执行运算,结果返回的是数字15,而不是字符串"15"。


二、+ 根据运算数的不同,具有不同的表现:


  字符串 + 字符串 = 字符串(被连接);"a" + "b" = "ab" "5" + "6" = "56"
 
  字符串 + 数字 = (字符串转换成数字)字符串(被连接);"a" + 5 = "a5" 5被转换成字符串 "1" + 0 = "10"

  数字 + 数字 = 数字(相加)5 + 5 = 10。

三、注意运算符的结合性,有些运算符从左到右的结合性;有些从右到左结合性。


  例如:w = a + b + c 等同于 w = (a + b) + c;

  w = ---b 等同于 w = - ( - ( -b ) ); w = a = b = c 等同于 w= ( a = ( b = c ))

  一元运算符、赋值运算符、三元运算符的结合性是从右到左的;


四、算术运算符规则:


  “+”:可以进行“加法”与“连接”运算;如果2个运算符中的一个是字符串,javascript就将另一个转换成字符串,然后将2个运算数连接起来。

  “+”:如果一个运算数是对象,javascript就会将对象转换成数字做加法运算或者字符串做连接运算;

  “-”“*”“/” 如果2个运算数中的一个是是非数字,则将它转化成数字执行数学运算。

  “/” 在javascript中,由于所有的数都是浮点数,除法的结果都是浮点数,5 / 2 = 2.5 ;除数为0的结果为正负无穷;0/0为NaN;

  “%”模运算符:计算第一个运算数对第二个运算数的模,就是第一个运算数被第二个运算数除时,返回余数。如果运算数是非数字的,则转换成数字。

  “-”一元取反:将运算数取反,如果运算数不是数字,则转化成数字。

  “++”“--”增量运算符/减量运算符号:运算数必须是一个变量、树组的一个元素或对象的一个属性。如果运算数不是数字,则转换成数字。
 
  注意:如果“++”位于运算数之前,先对运算数进行增量,然后计算运算数增长后的值。
 
  如果“--”位于运算数之后,先计算运算数未增长之前的值,然后对运算数增量。
 
  例如:i = 1; //赋值给i值1
 
  j = ++i; //先将i增量为2,然后将2赋值给j,i的值是2,j的值也是2。
 
  i = 1; //赋值给i值1
 
  j = i++; //先将i赋值给j,然后对将i值增量到2,i的值是2,j的值是1。
 
  减量运算符“--”与“++”相同。


五、等同运算符与全同运算符:


  (一)“==”“!==”等同运算符与非等同运算符:
 
  比较2个运算数,返回一个不布尔值。
 
  比较数值、字符串、布尔值使用的都是量值。当且仅当两个变量存放的值相等的时候,他们才相等。
 
  比较对象、数组、函数的时候,使用的是引用,只有2个变量引用的是同一个对象时,他们才是相等的
 
  。两个不同的数组是完全不同的,即使他们具有完全相同的元素。对于存放对象、数组、函数的引用的变量来
 
  说,只有当他们引用的是同一个对象、数组、函数的时候,他们才相等。

  注意!应遵循的原则:

  当两个运算数的类型不同时:将他们转换成相同的类型,
 
  1)一个数字与一个字符串,字符串转换成数字之后,进行比较。
 
  2)true转换为1、false转换为0,进行比较。
 
  3)一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString)
 
  4)其他类型的组合不星等。
 
  想两个运算数类型相同,或转换成相同类型后:
 
  1)2个字符串:同一位置上的字符相等,2个字符串就相同。
 
  2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。
 
  3)2个都是true,或者2个都是false,则想同。
 
  4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。
 
  5)2个null,或者2个都是未定义的,那么他们相等。
 
  “!=”非等同运算符:与等同运算符检测的结果相反。
 
  (二)“===”“!===”全同运算符与非全同运算符号:
 
  全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。
 
  “!==”非全同运算符与全同运算符比较的结果相反。如果两个运算数的类型或者值不同的时候,返回true。


六、比较运算符:


  这些比较运算符用于比较不同类型的值,结果返回一个布尔值。
 
  “<”“>”“<=”“>=”
 
  注意规则:比较的运算数可以是任意类型的,但是只能在数字和运算数上执行。不是数字和字符串的运算数将被转换成数字或字符串。
 
  1)如果两个运算数都是数字,或者都可以转换成数字,则按照数字的大小进行比较;
 
  2)如果两个运算数都是字符串,或者都可以转换成字符串,则将按照字母顺序进行比较;
 
  3)如果字符串遇到数字,则将字符串转换成数字进行比较。
 
  4)如果运算数既不能转换成数字,也不能转换成字符串,则返回结果false。


七、字符串运算符:


  并没有专用的字符串运算符,只是有些运算符在遇到字符串运算数的时候,表现不同。
 
  (一)“+”连接2个字符串;
 
  1)当2个运算数都是字符串的时候,连接起来;
 
  2)当其中有一个是数字的时候,将数字转换成字符串,连接起来;
 
  (二)“>”这样的比较运算符通过比较确认两个字符串的顺序,比较采用字符的顺序,较小的位于教大的前面,大写字母位于小写字母之前。
 
  (三)“+”的作用方法取决于计算顺序,
 
  如:s = 1 + 2 +"var" 则:返回结果3var; 因为先计算1+2,然后将结果3转换成字符串与"var"连接;
 
  如:s = "var" + 1 + 2 则:返回结果var12; 因为先计算var与1的连接,在将结果var1与转换成字符串的2连接起来。


八、逻辑运算符:


  用于执行布尔运算,常常和比较运算符一起使用,来表示复杂的比较运算。
 
  “&&” 逻辑与运算、“||”逻辑或运算符、“!”逻辑非运算符
 
  (一)“&&”当两个运算数都是布尔值的时候,逻辑与对他们进行and操作,即:当且仅当两个布尔值都是true的时候,返回结果true,否则返回false。
 
  注意:实际表现
 
  “&&”将检测第一个表达式运算数布尔值,如果第一个运算数表达式返回false,则返回左边第一个运算数表达式的值:false;否则将继续检测第二个即右边的运算数表达式,然后返回第二个运算数表达式的值;
 
  例如:if (a = b) stop(); 与 (a = b) && stop(); 等价
 
  不赞成使用这个方法,因为运算符右边的代码不能保证会被执行,
 
  例如:if ((a < b) && (b++ <10) ) stop();如果运算符右边的增量必须的话,却有可能由于前面的返回值而不被执行,一般反对在&&的右边使用具有其他作用的表达式(赋值、函数调用、增减量);
 
  将“&&”看作是一个布尔代数的运算符,会更简单与安全。
 
  (二)“||”当两个运算数都是布尔值的时候,逻辑或对他们进行or操作,即:当两个布尔值有一个是true的时候,返回结果true,否则返回false。
 
  注意:实际表现
 
  “||”将检测第一个表达式运算数布尔值,如果第一个运算数表达式返回true,则返回左边第一个运算数表达式的值:true;否则将继续检测第二个即右边的运算数表达式,然后返回第二个运算数表达式的值;
 
  同样不赞成使用这个方法,因为运算符右边的代码不能保证会被执行,
 
  一般反对在||的右边使用具有其他作用的表达式(赋值、函数调用、增减量);
 
  将“||”看作是一个布尔代数的运算符,会更简单与安全。
 
  (三)“!”逻辑非是一个一元运算符,放在运算数之前,它的目的是对运算数取反。
 

九、赋值运算符:


  (一)“=”是赋值运算符;他总是期望左边的运算数是一个变量、数组的一个元素或对象的一个属性;
 
  期望右边是一个任意类型的任意的值;
 
  从右到左的结合性,如果一个表达式中有多个赋值运算符,则从最右边开始计算。
 
  注意:每一个赋值表达式都有一个值,就是运算符右边的值;
 
  (二)可以使用带操作的赋值运算
 
  “+=” 左边的值加上右边的值后,赋值于左边的值。“-=”“/=”“*=”方法一样;

 
十、其他运算符:


  “?:”条件运算符是唯一的一个三元运算符;
 
  一个表达式的布尔结果?表达式1(任意类型的任意值):表达式2(任意类型的任意值);
 
  根据第一个运算数的布尔值结果,如果为true,则执行第二个运算数表达式,返回第二个运算数表达式的值;如果第一个运算数的布尔值结果是false,则执行第三个运算数表达式,返回第三个运算数表达式的值。

 
 
分享到:
评论

相关推荐

    javascript表达式和运算符详解.docx

    javascript 表达式和运算符详解 javascript 表达式是指能计算出值得任何可用程序单元。它是一种短语,javascript 解释器用来产生一个值。javascript 表达式可以分为六种类型:原始表达式、初始化表达式、函数表达式...

    javascript等号运算符使用详解.docx

    JavaScript 等号运算符使用详解 JavaScript 等号运算符是 JavaScript 编程语言中的一种基本运算符,用于比较两个操作数是否相等。在 JavaScript 中,等号运算符使用双等号(==)表示,当且仅当两个操作数相等时,它...

    golang中为什么不存在三元运算符详解

    三元运算符通常在其他语言如Python、JavaScript、C++等中被广泛使用,其语法形式为`条件表达式 ? 真值表达式 : 假值表达式`。这种运算符在简洁地实现条件赋值时非常有用,但Golang的设计者们有他们独特的考量。 ...

    js中的 -- 与 && 运算符详解.docx

    JS 中的 -- 与 && 运算符详解 在 JavaScript 中,-- 和 && 运算符是两个非常重要的逻辑运算符,它们在开发中被广泛应用。下面,我们将详细介绍这两个运算符的使用规则和应用场景。 规律与(&&) 规律与运算符 && ...

    javascript运算符——逻辑运算符全面解析

    下面小编就为大家带来一篇javascript运算符——逻辑运算符详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    《网页开发手记:HTML+CSS+JavaScript实战详解》

    在《网页开发手记》中,你将学习到JavaScript的基础语法,包括变量、数据类型、运算符、流程控制和函数等。进一步,你将接触到DOM(Document Object Model)操作,通过JavaScript改变网页内容和结构。此外,还会涉及...

    javascript表达式和运算符详解

    JavaScript中的表达式和运算符是编程的基础,它们用于计算和操作数据。在这篇文章中,我们将深入探讨这些概念。 首先,让我们了解JavaScript中的表达式。表达式是能够产生一个值的代码片段。根据定义,它可以是常量...

    javascript等号运算符使用详解

    JavaScript中的等号运算符用于比较两个值是否相等。等号运算符由双等号(==)表示,在JavaScript中,当两个运算数在比较时值相等,它返回true。但是,JavaScript的等号运算符在比较时会涉及数据类型转换的特殊规则,...

    Javascript实现运算符重载详解

    本文给大家汇总介绍了Javascript实现运算符重载的方法,实现的思路很简单,有需要的小伙伴可以来看看

    最好的javascript学习教程-JavaScript使用详解

    本教程《最好的javascript学习教程-JavaScript使用详解》涵盖了以上所有内容,通过阅读和实践,你将能够熟练掌握JavaScript,并运用到实际的Web开发中去。无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。

    JavaScript知识点总结(四)之逻辑OR运算符详解

    ### JavaScript知识点总结(四)之逻辑OR运算符详解 #### 1. 逻辑OR运算符基本概念 在JavaScript中,逻辑OR运算符是一个双目运算符,用两个竖线表示(`||`)。它用于在两个表达式之间进行逻辑运算。当左边的操作数...

    javascript函数详解!

    JavaScript函数详解 JavaScript是一种强大的、基于原型的、动态类型的脚本语言,广泛应用于网页和网络应用开发。在JavaScript中,函数扮演着核心角色,它们不仅可以作为可执行的代码块,还可以作为值进行传递和存储...

    JavaScript详解.doc

    JavaScript中的运算符与Java大体相同,但有几点需要注意。例如,除法运算不会自动四舍五入,整除时可能会得到意外的结果;加号在字符串与数字相加时起到连接作用;逻辑运算符`&&`和`||`与位运算符`&`和`|`在用途上...

    javaScript(详解).pdf

    - 运算符与表达式:JavaScript的运算符与Java相似,包括算术、比较、逻辑和位运算符等。 - 流程控制及循环语句:JavaScript支持if/else、switch、for、while等控制结构,与Java基本一致。 - 注释:JavaScript的...

    JavaScript完全入门_04__JavaScript的数据类型和运算符.pdf

    ### JavaScript 数据类型与运算符详解 #### 一、引言 在《JavaScript完全入门_04__JavaScript的数据类型和运算符.pdf》这份资料中,主要介绍了JavaScript中的基础概念,包括语法规则、基本数据类型、变量、表达式...

    js中的 || 与 && 运算符详解

    JavaScript中的逻辑运算符&&和||用于进行布尔逻辑运算,它们在编程中非常常见。这些运算符在进行逻辑判断时,会根据条件的不同返回不同的值。具体来说,&&运算符要求两边的表达式都为真时才返回真,而||运算符只要求...

Global site tag (gtag.js) - Google Analytics