JS笔记 | JavaScript的本质

仅做笔记分享,如有错误请高手指出

1.JavaScript的结构

JS的核心是对象,每个对象都可以包含0个或多个由名值对组城的属性
对象的属性有两种类型:

  1. 基础类型(直接量)
    不能再包含属性

  2. 对象类型
    可以再包含自己的属性,如果如此,该对象即是一个对象,又是另一个对象的属性。
    JS中对象可以分为function和object两种类型。
    JS中的object类型对象是使用function类型对象所创建。JS中经常使用的String、Array和Date等对象其实为function类型对象,包括Object对象也是function类型的对象,而使用它们创建出来的对象就是object类型

chrome测试截图
chrome测试截图

JS中用来创建object类型对象的各种function对象之间没有继承关系,但创建出来的object类型的对象可以继承其他对象的属性。另外,由于一个对象可以作为另一个对象的属性存在,因此对象之间另外还有一层包含关系。
JS本质就是一个大的对象,该对象为Global Object,是由宿主环境(如浏览器)创建出来的,在浏览器中就是window对象,其他对象都是它的属性,或者属性的属性。

2.JavaScript的内存模型

  1. 直接量
    直接用两块内存分别保存属性名与属性值
    在这里插入图片描述
  2. 对象
    对象需要三块内存,分别保存属性名、属性地址、属性内容
    在这里插入图片描述
    对于对象类型的属性来说,属性明知是指向了保存对象的内存地址,而不是指向实际的对象
function F(){
	this.v=1
}
let f=new F()
let f1=f
console.log(f1.v)		//1
f1.v=2
console.log(f.v)		//2
f=null
console.log(f1.v)		//2

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值