1、基本的数据类型有:undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值
基本类型的比较是值的比较。用==比较两个不同类型的变量时会进行一些类型转换。但是当两个值的类型相同的时候,即使是==也相当于是===
基本类型的变量是存放在栈区的(栈区指内存里的栈内存)
2、对象是属性和方法的集合。也就是说引用类型可以拥有属性和方法
引用类型的存储需要内存的栈区和堆区共同完成。栈区内存保存变量标识符和指向堆内存中该对象的指针,也可以说是该对象在堆内存的地址
 
引用类型时按引用访问的,换句话说就是比较两个对象的堆内存中的地址是否相同
JS中的引用类型传值问题
 
// 直接赋值的话,因为a和b指向同一个地址。所以用哪一个改变值,都会影响a,b。
var b = a;
// 只能复制一个和a一样的对象,那a和b就指向不同的地址
// 下面是jquery复制对象的方法
var b = $.extend(true, {}, a);
 
“附”
1、jQuery速查手册:http://www.php100.com/manual/jquery/
2、相等与不等
  • 如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1。
  • 如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换为数字进行比较。
  • 如果其中一个操作数的类型是字符串,另外一个为 object 类型,那么,将调用对象的 toString 方法之后,比较字符串。
  • 如果其中一个操作数的类型是数字类型,另外一个为 object 类型,那么,将对象转换为数值后进行数字比较。

一些特殊的比较

  • null 和 undefined 是相等的。
  • null 和 undefined 不会转换为任何其他类型
  • 如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。
  • 如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。
null 是一个对象,但是为空。因为是对象,所以 typeof null 返回 'object' 。
undefined是全局对象(window)的一个特殊属性,其值是未定义的。
 
null == undefined      //true
!"" //true
""==null //false
""==undefined //false
null==null //true
undefined==undefined //true
NaN==NaN //false true == 1 //true
false == 0 //true
true == 2 //false
"100"==100 //true
"100"===100 //false

  

js 基本类型&引用类型的更多相关文章

  1. js基本类型 引用类型

    参考 https://segmentfault.com/a/1190000005794070 http://blog.csdn.net/yummy_go/article/details/5050468 ...

  2. JS基本类型-引用类型-深浅拷贝

    在JavaScript中变量包含两种类型的值:一种是基本类型,一种是引用类型. 基本类型包括:数值.字符串.null.undefined.布尔值引用类型包括:对象.数组.函数.正则… 补充: null ...

  3. js 基本类型与引用类型的区别

    1. 基本类型: string,number,boolean,null,undefined 2. 引用类型: Function,Array,Object 访问方式                   ...

  4. JS基础知识(基本类型 引用类型)

    1,js中的  基本类型 引用类型  javascript中有两种变量类型:基本类型和引用类型,基本类型包括:Number.String.Undefined.Null.Boolean这五种,而引用类型 ...

  5. js基本类型与引用类型,浅拷贝和深拷贝

    1. 基本类型: string,number,boolean,null,undefined 2. 引用类型: Function,Array,Object 基本类型:存放在栈内存中的简单数据段,数据大小 ...

  6. 关于js基本类型与引用类型(堆内存、栈内存的理解)

    js 基本类型与引用类型的区别 ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可 ...

  7. js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math

    数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...

  8. JS变量类型与计算

    一.题目 1.JS中使用typeof能得到哪些类型? 2.何时使用===何时使用==? 3.JS中有哪些内置函数? 4.JS变量按照存储方式区分为哪些类型,并描述其特点? 5.如何理解JSON? 知识 ...

  9. JS 强制类型转化

    在Js中, 强制类型转化分为两种情况: 一种是引用类型转化基本类型, 如数组转化成数字:一种是两种不同基本类型之间的转化,如字符串转化为数字.你不能将基本类型转化成引用类型,比如,不可能把数字转化为数 ...

随机推荐

  1. 单行文字溢出和多行文字溢出省略号显示的CSS样式

    单行文字溢出,CSS样式 <h6 style="width:70px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis ...

  2. isset、is_null、empty的区别

    版本:PHP 5.4 1.isset() :检测变量是否存在,测试如下: $a = false; $b = null; $c; $d = 0; $e = true; var_dump(isset($a ...

  3. idea超炫的自定义模板

    idea超炫的自定义模板   idea 有些快捷键 sout -> System.out.println() ,输入sout,idea能自动补全代码, 这种约定的快捷方式大大提高了效率, 而id ...

  4. fzu1686-神龙的难题

    给出一个n\times m的01矩阵,以及\(h,w\),表示一次可以把矩阵的一个\(h\times w\)的小矩阵变为全0,问至少要多少次可以把整个矩阵变为全0.\(n,m\le 15\). 分析 ...

  5. 【bzoj4165】矩阵 堆+STL-map

    题目描述 定义和谐矩阵为长不小于 Mina 且宽不小于 Minb 的矩阵,矩阵的权值为整个矩阵内所有数的和.给定一个长为 N,宽为 M 的矩阵 A,求它的所有和谐子矩阵中权值第 K 小的矩阵,并输出它 ...

  6. Python字符串的简单操作

    数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...

  7. BZOJ4289 PA2012Tax(最短路)

    一个暴力的做法是把边看成点,之间的边权为两边的较大权值,最短路即可.但这样显然会被菊花图之类的卡掉. 考虑优化建图.将边拆成两个有向边,同样化边为点.原图中同一条边在新图中的两个点之间连边权为原边权的 ...

  8. HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)

    HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...

  9. odex文件格式

    apk安装或启动时,会通过dexopt来将dex生成优化后的odex文件.过程是将apk中的classes.dex解压后,用dexopt处理并保存为“/data/dalvik-cache/data@a ...

  10. JS深度合并对象

    /** * 如果target(也就是FirstOBJ[key])存在, * 且是对象的话再去调用deepObjectMerge, * 否则就是FirstOBJ[key]里面没这个对象,需要与Secon ...