【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判断数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音仔小瓜皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值