浅习一波JavaScript高级程序设计(第4版)p5

简介: JavaScript 高级程序设计第 4 版(后简称高程4),相较于第 3 版,增加了 ES6 至 ES10 的全新内容,删除了旧版过时的内容,并在原有基础上充实了更加翔实的内容。

image.png

JavaScript 高级程序设计第 4 版(后简称高程4),相较于第 3 版,增加了 ES6 至 ES10 的全新内容,删除了旧版过时的内容,并在原有基础上充实了更加翔实的内容。

中文译版于 2020 年发售,妥妥的“新鲜出炉”,你要是问本瓜:当今学 JavaScript 哪家强,我只能说:红宝书第 4 版最在行。


于是乎,借着更文契机,本瓜将开启一个小系列,带你重看一遍高级程序设计4(先前只是跳着跳着看),将抽取精华,用最简单的话解释核心点、尽量把握全局、快速过一遍的同时,记录与工友们分享~~


正文



第五章 —— 基本引用类型, 这是本瓜最不理解的 JavaScript 语法设定之一!

为什么已经有了::Boolean、Number 和 String 基本类型,还要来一个::Boolean、Number 和 String 原始值包装类型??


let s1 = "some text";
s1.color = "red";
console.log(s1.color); // undefined
let s1 = new String("some text");
s1.color = "red";
console.log(s1.color); // red


神不神奇?

这样做的目的就是:让原始值拥有对象的行为。。。


let falseValue = false
result = falseValue && true
console.log(result) // false
let falseObject = new Boolean(false);
console.log(falseObject) // Boolean {false}
console.log(falseObject&&true) // true


所以,一切通过 new 关键字创建的,都是对象!!


对象被认为是某个特定引用类型的实例。新对象通过使用 new 操作符后跟一个构造函数(constructor)来创建。构造函数就是用来创建新对象的函数;


上面的 String()、Boolean() 都是构造函数,都是用来构造引用类型的对象的!!

以下代码可以充分说明以上观点:


let s1 = new String("some text")
console.log(s1.__proto__===String.prototype) //true
let s1 = new String("some text")
let s2 = s1
s1.color='red'
console.log(s2) // String {'some text', color: 'red'}
let s1 = "txt"
let s2 = s1
s1='red'
console.log(s2) // txt


书归正传,Date()、RegExp() 自带的引用类型构造函数就不多说了,有机会专题写写;


5.4 讲到:单例内置对象:Global、Math


具体使用,就不展开了;


需要强调的是:当代码开始执行时,全局上下文中会存在两个内置对象:Global 和 Math。其中,Global 对象在大多数 ECMAScript 实现中无法直接访问。不过,浏览器将其实现为 window 对象。所有全局变量函数都是 Global 对象的属性。Math 对象包含辅助完成复杂计算的属性和方法。


小结



此一章,最有意思的,还是对于:原始值包装类型 的理解;

JavaScript 可以实现面向对象编程,但是它实际上是没有“类”的,我们通过构造函数来实力对象,其实是变相在实现“类”的继承能力;至于具体的实现,包括原型链这些,后面再聊。


相关文章
|
4月前
|
存储 JavaScript 算法
JS程序设计的常用套路
亲尝百草,方知甘苦。套路,通常有助于提升代码的可读性、扩展性和效率。以下是作者工作中总结出来的一部分代码套路,分享给大家。
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的程序设计基础视频学习系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的程序设计基础视频学习系统附带文章和源代码部署视频讲解等
41 0
|
JavaScript 前端开发
浅习一波JavaScript高级程序设计(第4版)p7-生成器
于是乎,借着更文契机,本瓜将开启一个小系列,带你重看一遍高级程序设计4(先前只是跳着跳着看),将抽取精华,用最简单的话解释核心点、尽量把握全局、快速过一遍的同时,记录与工友们分享~~
|
设计模式 JavaScript 前端开发
浅习一波JavaScript高级程序设计(第4版)p7-迭代器
JavaScript 高级程序设计第 4 版(后简称高程4),相较于第 3 版,增加了 ES6 至 ES10 的全新内容,删除了旧版过时的内容,并在原有基础上充实了更加翔实的内容。 中文译版于 2020 年发售,妥妥的“新鲜出炉”,你要是问本瓜:当今学 JavaScript 哪家强,我只能说:红宝书第 4 版最在行。
|
JavaScript 前端开发
|
前端开发 JavaScript 数据安全/隐私保护
Web前端开发笔记——第四章 JavaScript程序设计 第六节 函数
Web前端开发笔记——第四章 JavaScript程序设计 第六节 函数
Web前端开发笔记——第四章 JavaScript程序设计 第六节 函数
|
前端开发 JavaScript Java
Web前端开发笔记——第四章 JavaScript程序设计 第五节 数组
Web前端开发笔记——第四章 JavaScript程序设计 第五节 数组
Web前端开发笔记——第四章 JavaScript程序设计 第五节 数组
|
前端开发 JavaScript
Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句
Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句
Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句
|
前端开发 JavaScript
Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型
Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型
Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型
|
前端开发 JavaScript
Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量
Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量
Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量