js 引用类型比较
看到别人提的一个问题,说为什么,他们是fasle
  
然后自己也测试了一番觉得应该是这样的,
var a=[1,2,3,4];
var b=a;
var c=[1,2,3,4];
if(a==b){
    alert true;      //true
}else{
   alert false;
}
if(a==c){
 alert true;
}else{
 alert false;       //false
}
a是引用类型,指向一块内存,var b=a,相当于b也指向a的那块内存,两个对象相比较,比较的是是不是同一个对象,也就相当于指向的是不是同一个内存地址,显然b==a是true
c是又新建了一个对象,他指向的是另一块内存,存放的内容与a相同而已,a和c相比较,显然他俩指向的不是一个对象,不是相同的内存地址
同之前看到的问题一样,slice相当于新建了一个数组,同c的情况一样,所以他俩比较返回false。
什么情况下可以相等,找到了一个别人的列子,但无非就是上面所说的原理,指向同一块内存的时,相等
function person(name) {
    this.name=name;
}  
var p1 = new person("p1");
var p2 = new person("p2");  
console.log(p1 == p2); //false  
person.prototype.sayHi = function() {
    // do sayHi here
}  
console.log(p1.sayHi() == p2.sayHi()); //true
console.log(p1.sayHi() === p2.sayHi()); //true 
js 引用类型比较的更多相关文章
- 从一个简单例子来理解js引用类型指针的工作方式
		
<script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined conso ...
 - JS引用类型之——数组
		
前言 数组作为JS中非常常用的引用类型,其功能是非常强大滴,今天小猪就彻底的看了下它.为了防止猪脑子不够用所以记录在案呐 1.数组的创建 var arrayObj = new Array(); //创 ...
 - js引用类型数组去重-对象标记法
		
前言 Js数组去重已经有很多种实现方式:包括逐个检索对比(使用Array.property.indexOf),先排序后对比,使用hash表,利用ES6中的Set()等.这些数组去重办法中速度最快的是h ...
 - JS 引用类型
		
object类型: js中大多数引用类型都是Object类型的实例.创建object实例有两种方法:第一种是使用new操作符后跟Object构造函数. var obj = new Object();o ...
 - js引用类型之valueof和tostring(三)
		
一.摘要: <javascript高级程序设计第三版>一书中单独有一章对js的引用类型(Object.Array.RegExp.Function:基本包装类型:Boolean.Number ...
 - js——引用类型和基本类型
		
js中的数据类型有以下几种: 基本类型:Number Boolean String undefined null Symbol 引用类型:Object(Array, Function, Date ...
 - js引用类型赋值,深拷贝与浅拷贝
		
JS中引用类型使用等号“=” 赋值,相当于把原来对象的地址拷贝一份给新的对象,这样原来旧的对象与新的对象就指向同一个地址,改变其中一个对象就会影响另外那个对象,也就是所谓的浅拷贝.例如: var ar ...
 - js引用类型深拷贝、浅拷贝方法封装
		
引用类型的深拷贝.浅拷贝在前端领域一直是个很重要的知识点,不仅在业务中频繁使用,也是面试官们喜欢考的的知识点之一.本篇将封装引用类型的深拷贝.浅拷贝方法,并解决在封装过程中出现的问题. 一.浅拷贝 浅 ...
 - JS引用类型之——RegExp
		
前言 之前小猪分享过关于正则表达式的一些内容,具体请看传送门,今天小猪来分享怎么在js中使用正则表达式. 定义 ECMAScript通过RegExp类型来支持正则表达式.使用下面类似Perl的语法,就 ...
 
随机推荐
- dsPIC33EP ADC模块初始化及应用实例
			
//文件名 p33adc.h #ifndef _P33ADC_H_ #define _P33ADC_H_ //#include "p33adc.h" //--AD1CON1 #de ...
 - 制作简易计算器处理结果Servlet
			
ResultServlet.java: package com.you.servlet; import java.io.IOException; import java.io.PrintWriter; ...
 - python 中sys.stdout.write 和 print >> sys.stdout的区别(转)
			
下面应该可以解你的惑了: print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%" 看下面的代码的英文注释,是p ...
 - JSAPI用户手册
			
本文档主要涵盖如何嵌入SpiderMonkey javascript引擎到你自己的c++程序中. JavaScript在浏览器端已经被广泛使用了.但是,Mozilla的javascript引擎可以被嵌 ...
 - javascript complete, onload
			
1.complete 属性可返回浏览器是否已完成对图像的加载 <html> <head> <script type="text/javascript" ...
 - HTML目录
			
1. 表格标记 2. HTML常用标记 3. 博客园添加访问人数统计 4. 如何快速掌握CSS(各种CSS工具) 5. HTTP协议状态码详解(HTTP Status Code)(转)
 - C++ 二叉树遍历实现
			
原文:http://blog.csdn.net/nuaazdh/article/details/7032226 //二叉树遍历 //作者:nuaazdh //时间:2011年12月1日 #includ ...
 - java中如何忽略字符串中的转义字符--转载
			
原文地址:http://my.oschina.net/u/1010578/blog/366252 起因 这几天工作上需要跟另一个同事联调rest接口,我这边是java他是php,返回报文是js ...
 - C++-copy constructor、copy-assignment operator、destructor
			
本文由@呆代待殆原创,转载请注明出处. 对于一个类来说,我们把copy constructor.copy-assignment operator.move constructor.move-assig ...
 - 批量更新memcached缓存
			
假如系统里有3类数据company,user,product 利用维护版本号version的方式达到批量更新缓存的效果 memcache.Add("company",cversio ...