美文网首页web前端面试题汇总Web前端开发Web前端之路
javascript中值类型和引用类型的区别

javascript中值类型和引用类型的区别

作者: loushumei | 来源:发表于2020-04-11 19:15 被阅读0次

js的变量类型有哪些

1、值类型(基本类型):
字符串(string)
数值(number)
布尔值(boolean)
undefined、null
2、引用类型:
对象(Object)
数组(Array)
函数(Function)

值类型和引用类型的区别

【值类型】

1.占用空间固定,保存在栈中,在当前环境执行结束时销毁
2.保存和赋值是值的本身
3.可以使用typeof检测数据类型
4.基本类型数据是值类型

【引用类型】

1.占用空间不固定,保存在堆中,只有在引用的它的变量不在时,会被垃圾回收机制回收。 (引用变量存储在栈中的是指向堆中的数组或者对象的地址 )
2.保存与复制的是指向对象的一个指针
3.使用instanceof检测数据类型
4.使用new()方法构造出的对象是引用型

上述区别代码演示:

// **值类型:Number、string、bollean、undefined
var a = 100
var b = a
a = 200
console.log(b) // 100 保存与复制的是值本身
 
 
// **引用类型:对象、数组、函数、null(空指针)
// 可以扩展属性
var a = {age:20}
var b = a
b.age = 21 
console.log(a.age) // 21 

// **type of能判断哪些类型(问题 1)
// 所有的值类型
let a
console.log(typeof a) //undefined
console.log(typeof 'abc') //string
console.log(typeof 100) //number
console.log(typeof true) //boolean
console.log(typeof Symbol('s')) //symbol
//能判断函数
console.log(typeof console.log) //function
console.log(typeof
    function () {}) //function
//能判断引用类型(不能再继续识别)
console.log(typeof null) //object
console.log(typeof ['a', 'b']) //object
console.log(typeof {
    x: 100
}) //object


// 用instanceof来区分引用类型

// 如果变量是给定引用类型(根据它的原型链来识别)的实例,那么instanceof 操作符就会返回 true。

值类型和引用类型存储示意图


2-1值类型和引用类型.png

相关文章

  • javascript中值类型和引用类型的区别

    js的变量类型有哪些 1、值类型(基本类型):字符串(string)数值(number)布尔值(boolean)u...

  • JS数据类型

    数据类型分类和区别 分类 javascript数据类型分为:值类型(基本数据类型)、引用数据类型; 区别 值类型 ...

  • C#中值类型和引用类型的区别

    相同点:都继承自 system.object类。 不同点: 1)范围: valueType:结构体,en...

  • C#中值类型和引用类型的区别

    1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的 地址。 2. ...

  • C#中值类型和引用类型的区别

    值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。 值类型存取速度快...

  • Swift中值类型和引用类型

    值类型 值类型,即每个实例保持一份数据拷贝。Swift 中,值类型的赋值为深拷贝(Deep Copy),值语义(V...

  • swift中值类型和引用类型

    操作值类型一般比引用类型速度快。原因:1、值类型比引用类型在线程上更安全(可能)。2、值类型在栈上,引用类型在堆中...

  • Javascript 值类型和引用类型区别

    Javascript中变量类型分为原始类型和对象类型两类: 值类型(原始类型)字符串 string 、数值 num...

  • 【JavaScript】数据类型

    JavaScript的数据类型分为两种:原始类型和对象类型原始类型又叫基本数据类型对象类型又叫引用数据类型 区别:...

  • 2018-07-05

    javascript 普通类型和对象的区别 1、基本数据类型和引用数据类型ECMAScript包括两个不同类型的值...

网友评论

    本文标题:javascript中值类型和引用类型的区别

    本文链接:https://www.haomeiwen.com/subject/thaumhtx.html