【JS】数据类型、函数传参和内存

一、JS数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。

引用类型(对象类型):对象(Object)、数组(Array)、函数(Function)

还有两个特殊的对象:正则(RegExp)和日期(Date)。

区分:

1、关于赋值:基本类型在赋值时,会在变量对象上创建一个新的位置,并把值填入;而引用类型其复制的值是指向同一对象的指针

2、关于属性和方法:基本类型无法动态定义或访问其属性或者方法,而引用类型可以定义并访问属性或方法。

3、关于内存:基本类型存储在栈(stack)中【作为简单的数据段,只需存储在较小的内存区域并且便于迅速查找的位置】;引用类型存储在堆(heap)中。

*Javascript不可以直接访问内存,因此在变量存储引用类型数据时,存的只是对对象的引用,而非真正的地址。

 特别地:关于函数传参的说明

JS中所有传参都是按值传递,但是对基本类型和引用类型会产生不同效果

始终牢记,传参时,引用类型也是对该引用指针进行一个复制、按值传递的过程,因此在形参进行访问时会影响指向的对象的内容;BUT,形参若重新赋值,会导致引用指针的改变,函数结束后形参被销毁,因而不产生任何影响

例子:

function test(a,b,c){
    a.push(1);
    b=[1];
    c=2;
}

var a=[2],b=[3],c=9;
console.log(a);   //输出 [2,1]
console.log(b);   //输出 [3]
console.log(c);   //输出 9

二、数据类型判断方法

这位博主介绍得很全,在此不赘述

(111条消息) js判断数据类型常用的6种方法_Clara_G的博客-CSDN博客_js判断数据类型

猜你喜欢

转载自blog.csdn.net/weixin_57208584/article/details/129071695
今日推荐