前言

我是歌谣 知其然知其所以然 人人都有一个大厂梦 希望通过自己的一个总结分享可以给予大家带来帮助和提升。

本期知识点

JavaScript中基本数据类型和引用数据类型

目标

  1. 理解基本数据类型和引用数据类型的定义
  2. 理解堆和栈
  3. 数据类型分为哪些

定义

ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。
 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。
 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值。

常见的数据类型

基本数据类型

  • Sting
  • Number
  • Boolean
  • null
  • undefined
  • Symbol

引用数据类型

  • Object
  • Date
  • function
  • RegExp
  • Array …

栈内存(stack)

栈内存:是一种特殊的线性表,它具有后进先出的特性,存放基本类型。

堆内存(heap)

区别

1复制变量时的不同
对于基本类型来说,一般会在变量对象上创建一个新值,然后把这个值复制到为新变量分配的类型上面
对于引用类型来说,也会将存储在变量对象的值复制一份到新变量的内存空间中,但是这个值的副本其实是一个指针,这个指针指向我们被赋值的对象,即不管怎么样,引用类型的赋值其实都是引用的同一个对象

2参数传递的不同
首先我们应该明确一点:ECMAScript中所有函数的参数都是按值来传递的。
原始值:只是把变量里的值传递给参数,之后参数和这个变量互不影响。
引用值:对象变量它里面的值是这个对象在堆内存中的内存地址,因此它传递的值也就是这个内存地址,这也就是为什么函数内部对这个参数的修改会体现在外部的原因了,因为它们都指向同一个对象。

3声明变量时不同的内存分配:
原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值:存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存地址。

检测方法

可以通过typeof检测基本类型和复杂类型,不过检测出来的复杂类型都是Object,如果想要检测复杂类型可以通过 instanceof
语法:object instanceof constructor

var a1=0;                 // typedof a1 -> number
var a2 = 'this is str';  //typedof a2 -> string
var a3 =null;           //typedof a3 -> null
var c= [1,2,3];        // c instanceof Array  ->true
var b={m:20};         // b instanceof Object ->true

总结

面试中经常会问我们基本数据类型有哪些
我是歌谣 放弃很容易 坚持一定很酷 纯属个人总结 若有不合理之处 可选择性关闭网页 欢迎讨论
下一期预计开始讲解原型和原型链部分 敬请期待

惊呼!JavaScript基本数据类型和引用数据类型详解相关推荐

  1. JavaScript中的基本数据类型与引用数据类型

    JavaScript中的基本数据类型与引用数据类型 转载自:https://www.cnblogs.com/c2016c/articles/9328725.html 1.栈(stack)和堆(heap ...

  2. JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结

    一.JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型和引用数据类型.比如讲一下1 和Number(1)的区别 数据类型: undefined,没有定义 ...

  3. JavaScript数据类型基本数据类型与引用数据类型的区别

    JavaScript数据类型 1.JavaScript判断数据类型 typeof操作符 使用typeof操作符可以返回变量的数据类型 typeof操作符有带括号和不带括号两种用法 typeof (变量 ...

  4. 【JavaScript】关于基本数据类型和引用数据类型

    基本数据类型 JavaScript的基本数据类型有: String-字符串类型 Number-整形-----NaN也属于数值型 Boolean-布尔类型 null undefined-undefine ...

  5. JavaScript中基本数据类型和引用数据类型的区别

    1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...

  6. JAVA基本数据类型和引用数据类型的参数传递详解

    今天动力节点java培训机构小编为大家介绍 JAVA基本数据类型和引用数据类型的参数传递,希望通过此文大家能够熟悉JAVA基本数据类型和引用数据类型的参数传递,下面就随小编一起来了解一下JAVA基本数 ...

  7. JS中的基本数据类型与引用数据类型

    JS中的数据类型可以这样分类: 原始数据类型: number, string ,boolean, undefined, null, symbol 基本类型(简单类型): 值类型: number((整数 ...

  8. ES6 深拷贝_JS基本数据类型和引用数据类型的区别及深浅拷贝

    1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动释放 2.数据类型 JS分两种数据类型: 基本数据类型:Numb ...

  9. MySQL数据类型以及基本使用详解

    MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...

最新文章

  1. Day1-dns Extension
  2. Ansible-Playbook-template算数运算以及流程控制
  3. 程序员这口饭-职业规划解决方案
  4. 2020邮箱账号密码大全_通知 | 复旦大学2020年春季学期研究生选课FAQ
  5. redis五种数据类型的使用场景
  6. Lazarus Coolbar and AnchroDocking
  7. 201671030107词频统计软件项目报告
  8. html蒙版代码是什么意思,图层蒙版是什么意思
  9. 在AI里怎么把一行字拆成单个的字,并且可编辑
  10. 爬取糗事百科段子 + 数据可视化
  11. PHP写入txt文件换行
  12. 运营管理整改报告范文_快递整改报告怎么写
  13. 坦克大战java源码
  14. 微电子半导体集成电路专业术语英语整理
  15. Python项目(Django框架)天天生鲜在CentOS7.9搭建运行
  16. flutter滚动到底部_flutter ScrollController如何滚动到底部?
  17. 测试员面试被压价,拒绝offer后又涨价?揭 秘HR的压价套路
  18. 程序员入门消遣看看(一)
  19. jquery 点击li循环高亮显示
  20. Vue全家桶实现一个购物Web App

热门文章

  1. leetcode1482. 制作 m 束花所需的最少天数(二分法)
  2. mailto 附带附件_我和我的朋友如何将附带项目发展为每月$ 17,000的业务
  3. github开源大项目_GitHub刚刚发布了一份大规模的开源指南
  4. 裁判打分_内在的裁判偏见
  5. 美剧迷失_迷失(机器)翻译
  6. python自动化数据报告_如何:使用Python将实时数据自动化到您的网站
  7. CSS中属性的值和单位
  8. selenium 难定位元素、时间插件
  9. mysql 删掉重复数据
  10. 网易新闻 时事新闻抓取链接