本文仅仅介绍部分js操作符在实际应用中需要注意的地方。

  1. 布尔操作符:

    //1.逻辑与操作属于短路操作,即如果第一个操作数能够决定结果那么就不会再对第二个操作数求值
    var found=true;
    var result=(found&&variable); //报错
    alert(result);
    //上面的代码之所以报错是因为found为true,逻辑与操作符会继续对variable进行求值,但variable变量未声明,故报错 //逻辑或也是短路操作,但是逻辑或第一个操作数的求值结果为true时才不会对第二个操作数求值。这一点和逻辑与相反。
  2. 关系操作符:
    //1.如果两个操作数都是字符串则比较字符串对应的字符编码值,2.任何操作数与NaN进行关系比较结果都是false,包括NaN与NaN本身的比较也是false
    
     var result="a"<3;   //false,因为“a”被转换为NaN了
  3. 相等操作符:相等和不相等是先对操作数进行强制转型然后在比较他们的相等性,遵循规则如下:
    1. 如果有一个操作数是布尔值,则在比较相等性之前先将起转换为数值;
    2. 如果有一个操作数是字符串,另一个操作数是数值,则在比较前先将字符串转换为数值;
    3. 如果一个操作数是对象,另一个不是,则调用对象的valueOf()方法,用得到的结果按照前面的规则进行比较,如果没有valueOf()方法则调用toString()方法对结果做比较;
    4. null和undefined是相等的,这是ECMAScript规范里规定的;
    5. 在比较相等性之前不能将null和undefined转换成其它任何值;
      表达式 值 表达式 值
      null==undefined true true==1 true
      NaN!=NaN true true==2 false
      false==0 true undefined==0 false
      null==0 false    
  4. 全等和不全等:除了在比较之前不转换操作数之外全等和不全等操作符与相等和不相等操作符没有什么区别,全等操作符由(===)表示;
    var result=("55"==55);  //true,转换后相等
    var result2=("55"===55); //false,数据类型不同,全等不会转换数据类型

    用全等还是用相等看实际情况,不过优先推荐使用全等,因为相等和不相等存在数据类型转换问题。

关于js操作符需要注意的地方的更多相关文章

  1. js操作符

    JS操作符 x + y(数字) 将x和y相加; x + y(字符串) 将x和y拼接在一起; x - y 从x中减去y; x * y 将x和y相乘; x / y 将x除以y; x % y x和y的模(既 ...

  2. 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/huangyibin628/article/details/26364901 1.JS操作符 ① 除法 ...

  3. Javascript高级编程学习笔记(5)—— JS操作符

    话不多说,开始今天的码字之旅. 突然有种日更小说的感觉,emm... 操作符 ECMAScript(JS核心)描述了一组用于操作数据值的操作符,也包括算术操作符等等 而JS中这些操作符最鲜明的特点就是 ...

  4. js操作符总结

    算数操作符加法操作符(+),减法操作符(-),除法操作符(/),乘法操作符(*)还可以把多种操作组合在一起:1+4*5避免产生歧义,可以用括号把不同的操作分隔开来:1+(4*5):(1+4)*5变量可 ...

  5. js操作符+和()

    ECMA-262 描述了一组用于操作数据值的操作符,包括一元操作符.算数操作符逻辑操作符.关系操作符.赋值操作符.字符串操作符.对象操作符等.ECMAScript 操作符的与众不同之处在于,它们能够适 ...

  6. js操作符类型转换

    乘法 我们来看下前面的题目: console.dir(5*"5"); console.dir(5*"a");//NaN console.dir(5*NaN);/ ...

  7. js + -操作符

    js + 举例说明最有效了... "11"+1='111' "11"+'1'="111" 11+1=12 大概的感觉就是+操作符会优先输入S ...

  8. js &&操作符解析

    转载自:http://www.cnblogs.com/huchaoheng/p/4066473.html 前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享 ...

  9. js基础-需要注意的地方

    ---因为跟别的语言很像,所以只记录要注意的地方 1.== 和 === 的区别 ===要求类型也相等 "5"==5 = ture "5"===5 = false ...

随机推荐

  1. 20181111 Quartz(慕课网)

    Quartz体系结构 三个核心概念 调度器 任务 触发器 重要组成 Job JobBuilder JobDetail JobStore Trigger TriggerBuilder ThreadPoo ...

  2. JVM调优命令-jstat

    JVM Statistics Monitoring Tool,是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载.内存.垃圾收集.JIT编译等运行数据.[性能分析] 命令格式 1 ...

  3. 单字节编码&双字节编码

    单字节编码(WINDOWS-1252.ISO-8859-1.UTF-8) 双字节编码(UTF-16) Windows 记事本默认会将文件保存为单字节的 ANSI(ASCII).如果您选择 " ...

  4. Java获取时间,将当前时间减一年,减一天,减一个月

    在Java中操作时间的时候,需要计算某段时间开始到结束的区间日期,常用的时间工具 Date date = new Date();//获取当前时间 Calendar calendar = Calenda ...

  5. Logistic Regression – Geometric Intuition

    Logistic Regression – Geometric Intuition Everybody who has taken a machine learning course probably ...

  6. android中实现在ImageView上随意画线涂鸦

    我实现的思路: 1.继承ImageView类 2.重写onTouchEvent方法,在ACTION_MOVE(即移动时),记录下所经过的点坐标,在ACTION_UP时(即手指离开时,这时一条线已经画完 ...

  7. [python]使用python实现Hadoop MapReduce程序:计算一组数据的均值和方差

    这是参照<机器学习实战>中第15章“大数据与MapReduce”的内容,因为作者写作时hadoop版本和现在的版本相差很大,所以在Hadoop上运行python写的MapReduce程序时 ...

  8. 【转】2019年3月 最新win10激活密匙 win10各版本永久激活序列号 win10正式版激活码分享

    现在市面上大致有两种主流激活方法,一种是通过激活码来激活,另外一种是通过激活工具来激活.但是激活工具有个弊端就是激活时间只有180天,很多网友都想要永久激活,现在已经过了win10系统免费推广期了,所 ...

  9. 【ARTS】01_06_左耳听风-20181217~1223

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. Android 中关于 【Cursor】 类的介绍

    转自(http://www.cnblogs.com/TerryBlog/archive/2010/07/05/1771459.html) 使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生 ...