美文网首页Web前端之路让前端飞
JavaScript中基本类型和引用类型的值

JavaScript中基本类型和引用类型的值

作者: baiying | 来源:发表于2017-07-24 11:41 被阅读24次

JavaScript中包含两种数据类型的值:基本类型和引用类型

定义

  • 基本类型:简单的数据段
  • 引用类型:可能由多个值构成的对象

访问方式

  • 基本类型:按值访问,因为可以操作保存在变量中实际的值
  • 引用类型:引用类型的值是保存在内存中的对象,JavaScript不允许直接访问内存中的位置,所以在操作对象时是在操作对象的引用而不是实际的对象,故是按引用访问的.

动态属性

可以为引用类型动态地添加属性,但是基本类型不可以,虽然不会出错,但不会为其添加上属性.

let obj = new Object();
obj.name = "tom";
let name = 'person';
person.age = 12;
alert(obj.name); //tom
alert(name.age); // undefined

复制变量的值

基本类型复制:
会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上,复制完成后num1和num2完全独立,各自的任何操作都不会影响对方

let num1 = 5;
let num2 = num1;
num2 ++;
alert(num1);//5
alert(num2);//6

引用类型复制
当从一个变量到另一个变量复制引用类型的值时,也会将存储在变量对象中的值复制一份放到新变量分配的位置上,但是这个值的副本是一个指针,复制结束后,两个指针指向存储在堆中的同一个对象,因此一个的操作会直接影响另一个.

let obj1 = new Object();
let obj2 = obj1;
obj1.name = 'tom';
alert(obj2.name);//tom

传递参数

ECMAScript中所有函数的参数都是按值传递.即使引用类型是按引用访问,但在参数传递时依然是按值传递.
可以把函数的参数想象成局部变量.

检测类型

typeof:确定一个变量是字符串,数值,布尔值,还是undefined.但如果测一个引用类型或者NULL我们只会得到object,为了确定一个引用类型到底是哪种引用类型,我们会用instanceof

let a = 'haha';
let b = new Object();
let c = null;
let d = [1,2];
alert(typeof a);//string
alert(typeof c);//object
alert(b instanceof Object); //true
alert(d instanceof Array); //true

存储位置

基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中.
引用类型的值是对象保存在堆内存中.

相关文章

  • JS中实现浅拷贝和深拷贝

    (一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中...

  • 基本类型值和引用类型值

    JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值。 *引用类型包括: 基本类型值和引用类型...

  • JS 作用域及变量值的引用

    基本类型和引用类型的值 JavaScript 变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型值源自...

  • 变量、作用域和内存问题

    1. 基本类型值和引用类型的值 JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型的值。 基本...

  • 引用类型对象拷贝

    1.引用类型有哪些?非引用类型有哪些 JavaScript数据分为基本类型值和引用类型值基本类型值(数值、布尔值、...

  • JS基本类型和引用类型

    JS中可以把变量分成两部分,基本类型和引用类型。 JavaScript值类型和引用类型有哪些(1)值类型:数值、布...

  • JavaScript中基本类型和引用类型的值

    JavaScript中包含两种数据类型的值:基本类型和引用类型 定义 基本类型:简单的数据段 引用类型:可能由多个...

  • 第四章——变量、作用域、内存问题

    基本类型和引用类型的值 javascript引用数据类型是保存在堆内存中的对象,JavaScript不允许直接访问...

  • JavaScript变量、作用域和内存问题

    JavaScript类型松散,值和类型都可以改变 基本类型和引用类型的值 ECMAScript变量包括基本类型和引...

  • JavaScript 变量类型

    变量类型 JavaScript 中的变量类型分为值类型(又称为简单类型、基本数据类型)以及引用类型。 【值类型】:...

网友评论

    本文标题:JavaScript中基本类型和引用类型的值

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