js复习之基础总结-数据类型;数据,变量,内存。

情到浓时终转凉″ 提交于 2020-03-09 01:37:16

本篇内容主要包括一下几点

1. 数据类型的分类和判断

  • 基本(值)类型

    • Number ----- 任意数值 -------- typeof 返回i字符串
    • String ----- 任意字符串 ------ typeof
    • Boolean ---- true/false ----- typeof
    • undefined — undefined ----- typeof/===
    • null -------- null ---------- ===
    • symbol------symbol(str) ------typeof
  • 对象(引用)类型

    • Object ----- typeof/instanceof
    • Array ------ instanceof
    • Function ---- typeof/instanceof
  • typeof ,instanceof === 用来判断数据类型

  • js内存的主要俩大类:

    • 栈内存:主要存放全局/局部变量的内存
    • 堆内存:可以存放的是对象的内容
    • 注意:如果是引用类型:栈内存中有一块空间存放着堆内存某个对象的地址信息

2. 相关问题

  1. var a = xxx, a内存中到底保存的是什么?
    • xxx 是一个基本数据时:存放的就是一个基本值
    • xxx是一个对象时:存放的就是一个对象在堆内存中存在的地址值
    • xxx是一个变量时:参考1,2
  2. 引用变量赋值问题:
    这个比较简单:就是如果俩个变量指向的时同一个对象,那么通过一个变量来改变对象的值,另外一个变量指向的值也会发生改变(本质就是指向的同一个对象)。
  3. js调用函数在传递变量参数时,是值传递还是引用传递?
    本质是是值传递(但是这个值可能是一个基本值,也可能是一个对象的地址)。如果把后一种看成是引用传递,那么表示值传递和引用传递。
  4. js引擎是如何管理内存的?
  • 当变量被声明时:首先是分配需要的内存;然后使用分配到的内存;不需要时将其释放并归还。
  • 释放内存
    • 为函数分配的栈空间内存:函数执行完自动释放。
    • 存储对象的堆空间:当内存没有引用指向时,对象就会成为垃圾对象。垃圾回收器后面会定时进行释放内存。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!