专栏首页前端学习笔记JavaScript-简单数据类型和复杂数据类型

JavaScript-简单数据类型和复杂数据类型

1. 简单数据类型

简单类型基本数据类型值类型):在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null

2 . 复杂数据类型

复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;

3. 堆栈

  • 堆栈空间分配区别:

  1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈;

简单数据类型存放到栈里面

  2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。

  • 简单数据类型的存储方式 值类型变量的数据直接存放在变量(栈空间)中
  • 复杂数据类型的存储方式 引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中

4. 简单类型传参

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。

function fn(a) {
    a++;
    console.log(a); 
}
var x = 10;
fn(x);
console.log(x);

运行结果如下:

11

10

5. 复杂数据类型传参

函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 移动端常用开发插件和框架

    移动端要求的是快速开发,所以我们经常会借助于一些插件来帮我完成操作,那么什么是插件呢?

    清出于兰
  • HTTP请求与响应处理

    客户端向服务器端发送请求时,有时需要携带一些客户信息, 客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。

    清出于兰
  • 预解析

    清出于兰
  • PRML读书笔记(4) - 高斯混合模型(GMM) 及 EM 算法

    高斯混合模型的概念在 PRML 这本书的第 9 章介绍的。目前正在上的김동국 教授的人工神经网络纯理论课程非常适合研究生入门机器学习。但是由于没时间讲解全部...

    caoqi95
  • 超强脑洞第五弹——ggplot 构造连环饼图

    今天这篇之前曾有涉略过,就是利用ggplot的辅助插件工具——scatterpie制作基于气泡图的饼图,之前曾在地图图层上演示过此种类似图表,不过这里我将其与折...

    数据小磨坊
  • 30分钟精通React今年最劲爆的新特性——React Hooks

    你还在为该使用无状态组件(Function)还是有状态组件(Class)而烦恼吗? ——拥有了hooks,你再也不需要写Class了,你的所有组件都将是Func...

    桃翁
  • spark-shell用非sql API 改写 hql

    当我们在spark-shell用scala写程序的时候,如何不嵌入sql来查询Hive呢?这里我们来举个例子:

    用户1621453
  • 支持Dubbo接口文档生成的工具!

    smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型...

    路人甲Java
  • 支持 Dubbo 接口文档生成的工具

    smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型...

    JAVA葵花宝典
  • 多款软件内置后门程序 可监视并肆意操控用户电脑

    日前,火绒安全团队发现,万能压缩、起点PDF阅读器、迷你看图王、新速压缩、值购助手等一批软件内置后门程序,该后门可用来下发任意模块到用户电脑隐秘执行,威胁极大。...

    用户6477171

扫码关注云+社区

领取腾讯云代金券