本文仅仅介绍部分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. Hadoop生态圈-Kafka的新API实现生产者-消费者

         Hadoop生态圈-Kafka的新API实现生产者-消费者 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  2. Solr记录-solr介绍及配置

    Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的. 使用Solr构建的应用程序非常复杂,可提供高性能. 为了在C ...

  3. A*算法–A* algorithm tutorial

    Author:Justin Heyes-Jones From: http://heyes-jones.com/astar.php Date:2014.8.16 本文地址:http://www.cnbl ...

  4. IsNullOrWhiteSpace与IsNullOrEmpty

    public static boolean IsNullOrEmpty(String value) { return (value == null || value.length() == 0);} ...

  5. bzoj千题计划221:bzoj1500: [NOI2005]维修数列(fhq treap)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1500 1.覆盖标记用INF表示无覆盖标记,要求可能用0覆盖 2.代表空节点的0号节点和首尾的两个虚拟 ...

  6. 一个简单的二叉搜索树(C++实现)

    参考:http://www.cnblogs.com/skywang12345/p/3576373.html 这里主要就是自己实现的代码,删除动作有点不一样: #ifndef __BSTREE_H__ ...

  7. CMSZU站群管理系统 升级到 v1.8 [源码下载]

    CmsZu 简介 CMSZU即CMS族,是个网站内容管理平台,基于PHP+MYSQL技术创建,源码开放. CmsZu 更新说明 V1.8 修改了些bug 完善数据库管理 -> 数据库表管理的 字 ...

  8. Madgwick IMU Filter

    论文链接:http://202.114.96.204/cache/13/03/x-io.co.uk/35c82431852f2aa7d0feede9dc138626/madgwick_internal ...

  9. 一份最中肯的Java学习路线+资源分享(拒绝傻逼式分享)

    这是一篇针对Java初学者,或者说在Java学习路线上出了一些问题(不知道该学什么.不知道整体的学习路线是什么样的) 第一步:Java基础(一个月左右) 推荐视频: 下面的是黑马内部视频,我比较推荐的 ...

  10. C++单链表反转

    单链表反转笔记: #include<iostream> #include<string.h> using namespace std; struct ListNode { in ...