这些比较规则,你未必都知道

  相等运算符:

  使用相等运算符来比较两个值是否相等,相等返回true,否则返回false。

  1、对于简单类型来说,如数字、布尔值、字符串,比较的是两者的值是否相等。

  1==1  // true

  2==1  // false

  true==true  // true

  true==false  // false

  "ajax"=="ajax"  // true

  "ajax"=="AJAX"  // false

  "ajax"=="javascript"  // false

  2、对于引用类型来说,如对象、数组等,比较的是两者的引用是否相等。也就是说,如果有两个数组,它们所包含的的元素是一样的,但是比较的结果仍然为false。

  var a = new Array(1,2,3);

  var b = a;

  var c = new Array(3,1,2);

  var d = new Array(1,2,3);

  a==b  // true

  a==c  // false

  a==d  // false

  

  更详细的比较规则是:当两个值的类型相同时,就比较它们的值或者引用是否完全相等,当两个值类型不同时,他们也有可能相等。

  * null与undefined相等。

  * 数字和字符串比较,先将字符串转换为数字,再比较值。

  * 布尔值和其它类型的值比较时,先将布尔值转换为数字再比较。true转换为1,false转换为0。

  * 当数字、布尔值或字符串与对象比较时,先将对象转换为简单类型再比较。javascript的内置对象一般会先尝试valueOf()转换,再尝试toString()转换。比较特殊是是Date类,它会先执行toString()转换。

  var a;

  null==a  // true

  1=="1"  // true。将字符串1转换为数值1,再比较

  1==true  // true。将布尔值true转换为1,再比较

  0==false  // true。将布尔值false转换为0,再比较

  "1,2,3"==[1,2,3]  // true。

  

  补充:

  * javascript中只要是对象都存在toString方法,该方法作用是:将调用该方法的值转换为字符串返回。

  *valueOf()方法用于返回对象的原始值,该方法是数组对象的默认方法。

  

时间: 2024-08-02 02:15:56

这些比较规则,你未必都知道的相关文章

xUtils更新到3.0后的基本使用规则

说实话,对于xUtils,是我最近才用到的开发框架(也是刚接触),对于其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是其最近更新到3.0也没有解决加载自定义ImageView报错的问题. 我总是喜欢用一些最新的东西,xUtils 3.0才刚更新,是一次比较大的重构,对于百度到的使用规则,基本都是3.0以前的,使得用3.0的开发者需要求解用法的时候,遇到许多阻碍,故此在这里简单介绍xUtils 3.0的使用规则.关于怎么导入功能,其实并不是本文的内容,不过在此文最后一节简单讲解

CSS的“层叠”规则的总结

当你随机打开一个页面,查看源代码,你会发现,同一个元素,不止有一个CSS选择器及对应的样式.而一个元素只能应用一个样式,那么一堆样式中究竟是应用哪一个呢?这就涉及到CSS的层叠规则了.下面就来总结下CSS的层叠规则. 概念:CSS中的层叠就是让多个来源的样式叠加在一起,然后结合样式的特殊性(后面详细介绍).继承性,确定最终应用的样式. 样式的来源分五种: 1.浏览器默认的样式: 2.用户自定义样式.一些页面中会提供一些让用户自定义字体大小颜色等的快捷键: 3.外部样式,即<link>引用的CS

Effective Java:对于所有对象都通用的方法

前言: 读这本书第1条规则的时候就感觉到这是一本很好的书,可以把我们的Java功底提升一个档次,我还是比较推荐的.这里我主要就关于覆盖equals.hashCode和toString方法来做一个笔记总结,希望能够与君共勉. 概述: 这一章主要是说明一些对于所有对象都通用的方法.我们知道Java的多态是其特色之一,而多态的体现方式中就有一种方式叫做"重写".这些概念性的东西我想在大学我们学习Java的初期,老师就会如数家珍一样地灌输给我们,不过,在那个时候有多少人真的了解了什么是重载,什

CSS 命名规则

随着CSS的发展,使用CSS有语义化的命名约定和CSS层的分离,将有助于它的可扩展性,性能的提高和代码的组织管理. 在我前面的文章中讨论很多关于CSS的问题都可以通过使用一个适当的CSS策略来避免.在这篇文章里,我将着重于讨论使用一种方法或者一个命名规则所带来的好处. 这里有很多可供使用的前端方法和命名规则,每个都有自己的优缺点.在几乎所有的案例中CSS被分割成更易于管理的代码“块”.CSS的这种分割方式定义了每一种方法. 命名规则 一个可靠命名规则的重要性是不可忽视的.就像组织结构带来的好处一

通用的业务编码规则设计实现

一.背景 每一个企业应用中不可避免的都会涉及到业务编码规则的问题,比如订单管理系统中的订单编号,比如商品管理系统中的商品编码,比如项目管理系统中的项目编码等等,这一系列的编码都需要管理起来,那么它们的应该如何编码的,具体的编码规则我们很多时候都是直接写在程序当中 常用的的编码有: 1.数据库自增长ID或最大值加1 2.GUID 3.时间戳 4.常量+自增长 5.常量+时间戳+自增长 6.根据单据属性编码 比如商品编码:第X是代码商品颜色,第Y位是代码商品产地 7.自定义函数处理返回 8.其它 添

get方法和set 方法的命名规则

@interface Time:NSObjct { int hour ; int minute; int second; } -(int) hour;//get 方法 :命名规则 返回类型就是成员变量的类型 方法就是成员的名字 -(void)setHour :(int )newHour://set方法 :命名规则 返回类型都是void 方法是set 加上成员变量名字的首字母大写 带一个参数 参数类型是成员变量的类型 实现部分 -(int)hour { return hour; } -(void)

CSS 层叠规则

CSS 规则特殊性计算 特殊性 选择器的特殊性由选择器本身的组件确定.特殊性值表述为4个部分:0,0,0,0. 对于选择器中给定的各个id属性值,加0,1,0,0. 对于选择中给定的各个类属性值,属性选择或伪类,加0,0,1,0. 对于选择器中给定的各个元素和伪元素,加0,0,0,1. 结合符合通配符选择器对特殊性没有任何贡献 比较规则 因为值是从左向右排序的,所有1,0,0,0大于以0开头的所有特殊值,而不论后面的数是什么.比如,0,0,1,0比值0,0,0,13更高. 通配符的特殊性为0,0

【Drools-开源业务规则引擎】入门实例(含源码)

该实例转自:http://blog.csdn.net/quzishen/article/details/6163012 便于理解的应用实例1: 现在我们模拟一个应用场景:网站伴随业务产生而进行的积分发放操作.比如支付宝信用卡还款奖励积分等. 发放积分可能伴随不同的运营策略和季节性调整,发放数目和规则完全不同,如果使用硬编码的方式去伴随业务调整而修改,代码的修改.管理.优化.测试.上线将是一件非常麻烦的事情,所以,将发放规则部分提取出来,交给Drools管理,可以极大程度的解决这个问题. (注意一

放宽心,坚持住,一切都是最好的安排!!!

早上起来,她发现家里停电了.于是没办法用热水洗漱,用电吹风吹头发,不能热牛奶,烤面包,只好草草打理一下就出门. 刚走进电梯,邻居家养的小狗一下子冲进来扑住,上周刚买的米白长裙上顿时出现两只黑黑的爪印儿. 开车被警察拦,才想起来今天限行,罚了一百. 到了公司,正好晚了一分钟,又罚五十. 冲进会议室开例会,老板正在宣布工作调整的名单.她的业务居然被无故暂停,她的职位则被一个不学无术,整天就知道开豪车,用菠崃史特泡嫩模的家伙所取代. 午餐时间,所有人都闹着要新任主管请客,一窝蜂笑闹着出了门,没有人叫她