Skip to content

JoryDon/js

Repository files navigation

js基础 一、数据类型 (1)分类 【1】基本(值)类型 number string boolean undefined null 【2】对象(引用)类型 Object:任意对象 Array:一种特别的对象(数值下表,内部数据是有序的) Function:可以执行 (2)判断 typeof: 可以判断: undefined/数值/字符串/布尔值/function 不能判断: null与Object Object与Array

instanceof:
    判断对象的具体类型

===
    可以判断undefined/null

问题1:undefined null的区别
    undefined是定义,没有赋值
    null  定义并赋值,只是值为null。
    
问题2:什么时候给变量赋值为null?
    初始赋值,表明将要赋值为对象;结束赋值null,确定为垃圾对象,进而被垃圾回收机制回收

    //起始
    var b = null //初始赋值为null,表明将要赋值为对象
    //确定对象就赋值
    b = [1, 2]
    //最后
    b = null //让b成为垃圾对象,被垃圾回收机制回收

问题3:严格区分变量类型与数据类型
    【1】数据的类型: 
        基本类型
        对象类型
    【2】变量的类型: (变量内存值的类型)
        基本类型:保存就是基本类型的数据
        引用类型:保存的是地址值

问题4:堆和栈的区别:
    var obj = {name: 'Tom}  内存地址假设为:0x123
    var a = obj  
    obj.name  表明存储的是地址类数据,找到内存ID,读取内存数据
    任何内存都是地址
    对象的内存,是有对应的地址的
    
    栈空间:     堆空间
    基本数据     对象数据
    变量         内存
    obj:0x123   0x123:{name: 'Tom'}
    a:0x123

    函数名       函数体

问题5:什么是数据
    存储在内存中代表特定信息的东西,本质上是二进制
    数据的特点:可传递、可运算
    一切皆数据
    内存中所有操作的目标:数据
        算术运算
        逻辑运算
        赋值
        运行函数

问题6:什么是内存
    内存条通电后产生的可储存数据的空间(临时的)
    内存产生和死亡:
        内存条(电路板)==》通电==》产生内存空间==》存储数据==》处理数据==》断电==》内存空间和数据都消失
    一块小内存的2个数据:
        内部存储的数据
        地址值

    程序代码执行过程:代码==》计算机编译(将代码转换为二进制)==》编译完之后,按照计算机底层逻辑执行
    内存分类:
        栈:全局变量/局部变量 (标识对象的变量名称)
        堆:对象

问题7:什么是变量
    可以变化的量,由变量名和变量值组成
    每个变量都对应一小块内存,变量名用来查找对应的内存,变脸值就是内存中保存的数据

问题8:内存/数据/变量三者之间的关系
    写完代码==》存在硬盘==》执行代码==》代码到内存空间,快速执行
    数据:存储在内存中代表特定信息的东西,本质上是二进制
    数据的特点:可传递、可运算
    内存:用来存储数据的临时空间
    硬盘:存储数据的永久空间
    变量:内存的标识(包含变量名、变量值)

问题9:赋值和内存的关系
    var a = xxx; a内存中到底保存的是什么:
        xxx是基本数据类型,内存中保存的就是这条数据(变量名、变量值)
        xxx是对象,内存中保存的是对象的地址值(变量名/地址值)
        xxx是一个变量,内存中保存的xxx数据(可能是基本数据,也可能是地址值)

问题10:关于引用变量赋值
    var obj1 = {name: 'Tom'}
    var obj2 = obj1  //obj2保存的是obj1内存的内容(内存地址)
    obj1.name = 'jack'
    console.log(obj2.name) //'jack'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published