美文网首页js从0开始学习
js - 09 JS数据类型的区别

js - 09 JS数据类型的区别

作者: 大怪兽迪迦 | 来源:发表于2019-11-04 16:37 被阅读0次

堆栈底层机制

思考:

1.  let a = 1;                    2. let n = {name: "xxx"};
    let b = a;                       let m = n;
    b = 2;                           m = {name: "xxxxxx"};
    console.log(a)                   console.log(n)

浏览器执行代码

步骤

  • 从电脑内存中分配出一块内存,用来执行代码,称:栈内存(stack)
  • 分配一个主线程用来自上而下执行js代码

图解思考1

栈内存.png
  • 创建变量a,放到当前栈内存变量储存空间中
  • 创建一个值1,并把他储存到当前值储存空间中(简单的基本类型值就是这样直接储存,引用其他复杂的类型就不能直接储存)
  • “=”为赋值的意思,其实就是让变量和值相互关联的过程
上述第一题console.log(a) // => 1

图解2

堆内存.png
  • 创建一个变量n,并在栈内存之外创建一个内存,用于储存引用类型值,称为堆内存(heap)=>内存中有一个16进制地址
  • 把对象中的键值对(属性名:属性值)依次储存到堆内存中
  • 将变量和对内存地址关联起来
  • 上述第二题中,m = {name:“xxxxxx”},此时堆内存中就有两个’name‘,又因为属性名不能同名,所以name:'xxx'被name:'xxxxxx'替换
  • 综上,上述第二题中console.log(n) =>name:'xxxxxx'

总结

  • 基本类型:按值操作(直接操作),所以也叫作值类型
  • 引用类型:操作的是堆内存的地址(按引用地址操作)

相关文章

  • js数据类型

    JS基本数据类型和引用数据类型(JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝) 再讲 js 的基本数据类...

  • js - 09 JS数据类型的区别

    堆栈底层机制 思考: 浏览器执行代码 步骤 从电脑内存中分配出一块内存,用来执行代码,称:栈内存(stack) 分...

  • js复习

    1 数据类型 2 ===和==的区别, 3 js onload和DOMcontentloaded的区别 ...

  • js笔记六之基本数据类型和引用数据类型的区别

    基本数据类型和引用数据类型的区别 js是运行在浏览器中的(内核引擎)浏览器会为js提供赖以生存的环境(提供给js代...

  • 2019-06-06 JS中基本数据类型

    JS中基本数据类型有哪几种?null 是对象吗?基本数据和复杂数据类型有什么区别? JS的基本数据类型:Undef...

  • js小知识1

    js的原始类型?null是对象吗,基本数据类型和引用类型的区别 js中类型转化的规则 ==与===区别,什么情况下...

  • JS 数据类型、运算符、流程控制语句

    Q: JS的数据类型有几种?哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? A: JS的数据类型...

  • JS里的数据类型

    title: JS里的数据类型date: 2018-09-21 22:47:16tags: [JavaScript...

  • js入门知识点

    * 基础知识 * js的输出方式 * js的组成 * js的命名规范 * 数据类型 * number数据类型 * ...

  • 数据类型,运算优先级

    1.js有哪些数据类型,哪些是原始类型,哪些是复杂类型,它们的区别又是什么? js中有6种数据类型,它们分别是nu...

网友评论

    本文标题:js - 09 JS数据类型的区别

    本文链接:https://www.haomeiwen.com/subject/pcpdbctx.html