Web前端高级编程学习笔记3:原始值与引用值

ES数据分为 原始值与引用值。

原始值

原始值:表示单一的数据。(undefined、null、boolean、number、string、symbol)

原始值动态属性

  • 原始值不可改变。
  • 原始值不能有属性。
let one="Tom";
one.age=20;
console.log(one,one.age)         //"Tom",undefined

原始值包装类型

为了方便操作原始值,ES提供了3种特殊的引用类型: Boolean、Number和 String 。
每当用到某个原始值的方法或属性时,后台会创建一个相应的原始值包装类型的对象,从而暴露出操作原始值的各种方法。

let s1 = "hello world" ;
let s2 = s1.substr(05);

后台执行步骤:

  1. 创建一个包含了原始值的String类型的实例;
  2. 调用实例上的特定方法;
  3. 销毁该实例;

引用值

引用值:表示有多个值(原始值或其他引用值)构成的对象。

引用值(对象)可以随时添加、修改、删除其属性和方法。

let person = new 0bject( );
person.name = "John" ;
person.showMe = function () {
console.log ( "Hi,l'm " + this.name);
} ;

值传递

赋值:将值复制给变量的过程。

原始值与引用值传递的区别:本质上没有区别,都是将一个变量中保存的信息复制给另一个变量。

let obj1={value:100};
let obj2=obj1;
obj2.value=200;
console.log(obj1.value,obj2.value)    //200 200

typeof( ) 主要用于检测原始值,对于引用值意义不大

let s = "Nick" ;
let b = true;
let i = 22;
let u;

console.log(typeof s) ;     //string
console.log(typeof b) ;    //boolean
console.log (typeof i) ;   //number
console.log( typeof u) ;   //undefined

let n = null;
let obj = new 0bject( );
let a = [123];

console.log( typeof n) ;    //object
console.log (typeof obj);   //object
console.log(typeof a) ;     //object

通常采用 instanceof 操作符,判断引用值是否为某个构造函数的实例。

let obj = new 0bject( ) ;
let a = [ 123];
console.log(obj instanceof 0bject );//true
console.log(a instanceof Array ) ;//true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值