基础类型和引用类型的区别
基本类型和引用类型的区别
一.基础类型
基本的数据类型有:number string boolean null undefined symbol。基本数据类型的访问是按值访问的,可以对保存的实际值进行操作
基本数据类型的特点:
1.值的不可变性:
var name ='zs'
name.firstname = 'aaa'
console.log(name.firstname) //undefined
2.基本数据类型的变量存在栈区,变量的标识符和变量的值存在不同的栈内存中。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIgm23K0-1625319180093)(/Users/jx/Library/Application Support/typora-user-images/image-20210703104005887.png)]在这里插入图片描述
二.引用类型
引用类型有:object 函数
引用类型的值是保存在栈内存和堆内存中的
由图可以看到,obj中保存的fn只是函数的引用,真正的函数体保存在堆内存中
let obj1 ={name:'zs',fn:function(){console.log(123)}
}let obj2 ={name:'ls',fn:function(){console.log(666)}
}
obj2.fn = obj1.fn
obj2.fn() //666
代码中,obj1复制为obj2的只是obj2中的函数引用,所以在执行是会执行666.
三.如何分辨数据类型
1,分辨基础类型和引用类型
typeof()
let name='zs'
let obj={}
typeof name //string
typeof obj //object
使用typeof辨别时会返回数据类型,为object或者function时是引用类型
特殊情况
let arr =[]
let obj={}
typeof arr //object
typeof obj //object
Object.toString.call(arr) //[Array,Object]
Object.toString.call(obj) //[object,object]
基础类型和引用类型的区别相关推荐
- JS基础类型和引用类型
JS基础类型和引用类型脑图
- javascript中基本类型和引用类型的区别分析
大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...
- 基本类型和引用类型的区别
1. 数据的内存存储的方式不同 基本类型存在栈中,引用类型在栈中存的是堆地址,具体数据存于堆中 2. 使用方式不同 基本类型可以使用所有的运算符进行 ...
- 深入理解js基本类型和引用类型的区别
1.基本类型: 我们知道基本的数据类型有:undefined,boolean,number,string,null.按值访问,可操作保存在变量中的实际的值.基本类型值指的是简 单的数据段. 基本类型的 ...
- Java的数据类型-基本类型和引用类型
道生一,一生二,二生三,三生万物------老子 二进制是道.基本类型是一.引用类型是二.框架是三.软件应用是万物------小虎哥. 0.基本类型和引用类型的区别 Java中的数据类型分为 基本类型 ...
- JavaScript 基本类型和引用类型区别
基本概念 JS有以下这些数据类型:undefined.null.string.boolean.number.symbol.bigint.object. 其中,前面 7 个被称为基本类型,又叫原始类型( ...
- 基本类型和引用类型区别
目录 1.基本类型包括: 2. 引用类型包括: 3.基本类型 3.1 基本类型的值是不可变的 3.2基本类型的比较是值的比较 3.2.1基本类型的数据类型相同时 3.2.2基本类型的数据类型不同时 3 ...
- java面向对象(类与对象,局部变量成员变量,基本类型和引用类型作为参数传递)...
一.类和对象的区别 类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体 可以将玩具模型看作是一个类,将一个个玩具看作对象,从玩具模型和玩具之间的关系便可以看出类与对象之间的关系.类用于描述 ...
- javascript变量中基本类型和引用类型的详解解读
前言: Javascript语言中的变量和其他语言的变量有很大区别,javascript松散类型的本质,决定了它只是在特定时间时间保存特定值得名字而已.由于不存在定义某个变量必须保存何种数据类型值的规 ...
最新文章
- 【问题收录】在ubuntu14.04 64位下运行jd-gui
- linux下,redis 3.2.1双节点集群安装部署
- 计算机专业毕业论文的参考文献,计算机专业毕业专著类参考文献 计算机专业毕业论文参考文献哪里找...
- apollo 配置中心_Apollo配置中心搭建笔记
- HighChat动态绑定数据 数据后台绑定(三)
- 为系统扩展而采取的一些措施——缓存
- 数据库索引的使用及优化
- python 类 探索
- 回不去原来是没有 实现这个 代理方法,
- 【银行】2015农行软开 笔试+面试 小记
- 微信小程序内容组件图标 icon
- PR曲线以及ROC曲线的绘制
- element ui 前台模板_element-ui 菜单模板封装(递归)
- Butterworth数字滤波器设计
- ubuntu下比较好用的msn聊天工具
- 域名已注册好,如何做网站?
- 8、大话设计模式--单例模式 、桥接模式、命令模式、职责链模式、中介者模式
- Python 面向对象 (六) 实例学员管理系统
- Java的Modifier
- matlab中如何分布运行,matlab安装、运行与其他问题集锦
热门文章
- java 城市多音字处理
- 服务器端配置的ssl协议版本,客户端ssl协议
- 短学期题解——kk数圈圈
- 搜狗知立方高调亮相 开启知识计算新时代
- 信用卡欺诈案例数据分析——利用逻辑回归进行分类
- 3dmax学习资料记录
- 名著赏读 | 为什么要上大学?读《美国高等教育》
- 联想微型计算机m4350q升级,拆解:高度集成化的联想M4350q_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
- 计算机三个人的英语情景对话,英语情景对话三人3分钟对话阅读
- 英雄联盟怎么解除小窗口_英雄联盟手游艾希怎么出装-英雄联盟手游艾希出装推荐...