js中的数据类型有以下几种:

Number   Boolean   undefined     Object   Function    String  Null

基本类型:Number Boolean  String  undefined null

引用类型:Object  Function

基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的

复制变量值  

  基本类型:

var p = 1;var p1 = p;

执行结果:

也就是说,基本类型的复制就是在栈内存中开辟出了一个新的存储区域用来存储新的变量,这个变量有它自己的值,只不过和前面的值一样,所以如果其中一个的值改变,则不会影响到另一个。

  引用类型:

var object1 = new Object();
var object2 = object1;

object2复制了object1的值,但是结果却不是像基本类型复制一样的

执行结果:

定义了一个对象其实是在栈内存中存储了一个指针,这个指针指向堆内存中该对象的存储地址。复制给另一个对象的过程其实是把该对象的地址复制给了另一个对象变量,两个指针都指向同一个对象,所以若其中一个修改了,则另一个也会改变。

object.name = 'jhon';
alert(object.name);   //jhon

基本类型的数据是没有属性和方法的,引用类型才会有,但是为什么String类型却又那么多方法呢?

var string = "aaa";
var string2 = string.substring(0));   //aaa

基本类型的确没有方法和属性,因为一旦创建了属性或者方法就会被立刻销毁,但是为了方便程序员对这类的基本类型数据比较方便的操作,在底层做了一些工作,其实这段代码相当于:

var string = new String("aaa");
var string2 = string.substring(0);
string = null;

(1)创建一个String类型的实例(使用 new 操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一
行代码的执行瞬间,然后立即被销毁 )

(2)在实例上调用指定方法

(3)销毁该实例

经过这三步,字符串值就变得和对象一样了,在Boolean  Number中也是这样

String  Boolean  Number 这三种类型也叫做  基本包装类型

WEB前端学习五 js什么是引用类型相关推荐

  1. 深圳Web前端学习:js中的模块化--【千锋】

    深圳Web前端学习:js中的模块化–[千锋] 0.前言 我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的, ...

  2. Web 前端学习 之js概述

    Web 前端学习 之js概述 1.JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行JavaScript 代码. JS 是 ...

  3. WEB前端学习二 JS作用域和作用域链

    先上三段说明作用域的代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3 ...

  4. WEB前端学习一 JS预解释

    javascript 的预解析:(个人理解)就是js代码在执行之前 会在相应的执行环境中 预先把 一些东西解析到内存.如果理解错误,请多多指正 一. 那究竟预先解析哪些东西那??答:预先解析 func ...

  5. WEB前端学习六 js什么是闭包

  6. WEB前端学习四 js什么是原始类型

    原始值与引用值 在ECMAScript 中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存放在栈(stack)中的简单数据字段,也就是说,它们的值直接存储在 ...

  7. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

  8. web前端学习基础教程,简单的图片旋转木马自动轮播js代码

    一款简单的图片旋转木马自动轮播js代码,图片叠加轮播切换效果,支持点击左右箭头按钮控制切换. 案例效果图 案例源码: <!DOCTYPE html> <html lang=" ...

  9. Web前端学习第五周

    Web前端学习第五周 strong和b.em和i strong 和 em 都是表示强调的标签,表现形态为文本加粗和斜体. b 和 i 标签同样也表示文本加粗和斜体. 区别在于,strong和em 是具 ...

最新文章

  1. 互联网老师论坛高调炫耀收入:硕士毕业三年,月入九万多!
  2. python 字符串输入时间_Python input()函数:获取用户输入的字符串
  3. 大数据之Linux早课9.21
  4. Mathematica初学者第二讲
  5. boost::type_erasure::any_cast相关的测试程序
  6. 每天一道LeetCode-----最长回文子串/序列,从头开始的最长回文子串长度
  7. macOS 跳过非 AppStore 下载的软件打开时的验证步骤
  8. IPV6迎来商业元年 运营商短期盈利模式成难点
  9. SpringCloud微服务(06):Config组件,实现配置统一管理
  10. PureComponent: setState未触发render渲染
  11. 安卓系统怎么安装软件_「软件」怎么在虚拟机里安装系统
  12. 量化分析师的python日记_量化分析师的Python日记【第1天:谁来给我讲讲Python?】...
  13. php高并发秒杀解决方案
  14. CxImage使用介绍
  15. HSQL 中修改字段的语法
  16. BZOJ 3162 / Luogu P4895: 独钓寒江雪 树hash+DP
  17. Python入门基础篇 No.26 —— 列表_复制列表_排序_revered逆序_max_min_sum
  18. 11. 旋转数组的最小数字(剑指 Offer 题解Java版)
  19. DetectoRS论文解读
  20. 程序员:被问“刚毕业吧”,憋一口老血如何回击?网友:不理睬!

热门文章

  1. java图像处理之查找表实现图像处理加速
  2. 使用imbalanced-learn处理数据不均衡问题
  3. DeepCTR-Torch,基于深度学习的CTR预测算法库
  4. 红黑树、B(+)树、跳表、AVL对比
  5. AI面试必备!你不可不知的10个深度学习方法
  6. Centos7安装时引导错误以及解决方案
  7. 三年了总觉的还是该写点什么
  8. 快速开发基于 HTML5 网络拓扑图应用之 DataBinding 数据绑定篇
  9. AJAX省市县三级联动的实现
  10. Maven+Spring+CXF+Tomcat7 简单例子实现webservice