分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JS基本类型和引用类型

发布时间:2023-09-06 02:29责任编辑:白小东关键词:暂无标签

基本数据类型:  Undefined, Null,Boolean,Number,String Symbol(es6新加)

引用类型:  Object,Array,Data,RegExp,Function,基本包装类型,单体内置对象

基本类型跟引用类型的分别:

1. 基本类型保存在栈中,而引用类型保存在堆中

2. 在将一个值 复制给变量时,解析器需确定这个值是基本类型和引用类型

  如果值是基本类型,那么存储的就是值,

  如果值是引用类型存储的是地址(也就是指针),这个地址指向的就是这个堆空间

基本类型跟引用类型都是按值传递的

var a = [1,2,3]var b = ?a;b.push(4)console.log(a) ?// [1,2,3,4]

上面这段代码 就是一个很好的说明 a 是一个引用类型, 因此它的值存储的就是地址,并且a把值赋值给变量b,因此a跟b都指向了

一个数组, 所以当b发生改变了 , a也跟着改变了

传递参数

function setName(obj) {obj.name = "Nicholas";}var person = new Object();setName(person);alert(person.name); //"Nicholas"

当把变量person传入到了 setName函数中 , 此时变量person的值就传递给了函数内部的obj,因为传递的值是地址,所以obj添加了一个属性name,

那么也相当于给person添加上了,所以person.name  = "Nicholas"

function test(m){
m ={v:5}
}
var m = {k:30};
test(m);
console.log(m.v) // undefined

变量 m 传递给函数test,把变量m的值传递给了函数内部中的m,但是函数数内部又开了一个新的空间,此时的函数内部中的变量m地址已经发生改变了了,所以跟全局变量 m 无关

JS基本类型和引用类型

原文地址:https://www.cnblogs.com/qinwang199/p/10226121.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved