由于博主没有系统的学习过前端基础知识,因此打算读一遍《JavaScript高级程序设计第三版》(如下简称“红宝书”)。
为了更深入地吸取知识,因此打算边看边记录下知识点和一些本身的见解,并写在这里和你们一块儿探讨探讨~前端
红宝书是一本很适合初级前端去看的书,第四版已经出了,然而由于穷(其实也由于不懂英文),仍是选择了第三版做为本次读物。本读书笔记按照书本的目录顺序进行记录,书的前三章主要讲的是 JavaScript 的起源简介还有一些基本的概念,在这里就先不赘述了,之后有机会必定补上。bash
拓展:实际上在 ES6 中引入了一种新的原始类型
Symbol
,表示独一无二的值。是 JavaScript 语言的第七种数据类型。函数
在书中介绍,基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。学习
上述 String
, Number
, Boolean
, null
, undefined
这5种基本数据类型是按值访问的,由于能够操做保存在变量中的实际的值。spa
引用类型的值是保存在内存中的对象,而 JavaScript 不容许直接访问内存中的位置,也就是说不能直接操做对象的内存空间。在操做对象时,其实是在操做对象的引用而不是实际的对象。所以,引用类型的值是按引用访问的。设计
书中注:这种说法不严密,当复制保存着对象的某个变量时,操做的是对象的引用。但在为对象添加属性时,操做的是实际 的对象。——图灵社区“壮壮的前端之路”注code
定义基本类型和引用类型的方式是相似的:建立一个变量并为该变量赋值。 可是,当这个值保存到变量后,对不一样类型值能够执行的操做则截然不同。对于引用类型的值,咱们能够为其添加属性和方法,也能够改变和删除其属性和方法。但咱们不能给基本类型的值添加属性,尽管这样作不会致使任何错误。对象
var person = new Object();
person.name = 'Nick';
alert(person.name); // 'Nick'
复制代码
以上代码建立了一个对象并将其保存在了变量 person
中。而后,咱们为该对象添加了一个名为 name
的属性,并将字符串 "Nick" 赋值给了这个属性。紧接着,又经过 alert()
函数访问了这个新属性。若是对象不被销毁或者删除,这个属性会一直存在。ip
var name = 'Nicky';
name.age = 12;
alert(name.age); // undefined
复制代码
以上代码为字符串 name
定义了一个名为 age
的属性,并赋值为 12
,但在下一行访问这个属性时发现返回的是 undefinded
。这说明只能给引用类型动态地添加属性,以便未来使用。内存
未完……