JavaScript权威指南(第6版) 8.8分
读书笔记 第1页
盛昂

#JavaScript - javascript的类型可分为原始类型和对象类型,也可以分为拥有方法的类型和不能拥有方法的类型,同样可分为可变mutable类型和不可变immutable类型 p33 - 0.1+0.2!=0.3 p38 - null和undefined都不包含任何方法,使用“.”和“【】”来存取方法会产生一个类型错误 p45 - 用this来引用全局对象 p45 - 包装对象只被看做一种实现细节,通常不值得特别关注 p46 - 基本类型值不可更改;两个对象永不相等,除非是别名的情况 p48 - x+"" - +x - !!x - 读取未声明的变量会报错 - 函数体内的变量声明(而不是赋值)会提前;将函数声明特意放在函数体顶部而不是使用它们的地方,反映了真实的变量作用域 p58 - 全局变量是全局对象的属性;JavaScript允许使用this引用全局对象,然而却米有提供办法引用函数体内部的局部变量 p59 - 数组直接量的元素可以省略,默认填充underfine p62 - eval使用了调用时候的环境作用域 - break、continue、return、throw、try-catch-finally/debugger - 对象是动态的,但它们通常是用来描述静止的数据。 p118 - 指向一个对象的引用,而非副本。 p118 - 对象的键值对的值可以是任意JavaScript值,或者是getter与setter,键值对还有具有属性特性(property attribute)包括:可写、可枚举、可配置。 p119 - 对象本身还有个对象属性(object attribute),包括:原型、类、可扩展 p119 - new后边跟随一个构造函数(constructor);JavaScript核心原始类型都含有构造函数。 p120 - 取对象属性,很多场景只能用数组方法完成。 p124 - var o={x:123};"x" in o //true - o.x !==undefined //flase p129 - 由getter和setter构成的属性称作“存取器属性” p132 - 可以通过这些API将属性设置为“不可枚举的”,让他们看起来更像内置对象 p137 - 可以通过属性描述符将对象属性设置为不可更改的。 p137 - 想要获得对象class可以通过调用toString p139 - Object.preventExtensions使对象不可扩展 - 数组中的值可以是任意表达式 p145 - 注意,在数字字面直接量中是不能创建“稀疏数组”的,而需要通过new Array(x) p147 - 参数在函数体内像局部变量一样工作。 p165 - 通过这个对象调用此函数时(属性),该对象就是此次调用的上下文环境,也就是该函数的this值 - 函数可以定义在其他函数内部,这样就可以访问他们被定义时候所处的环境的作用域变量,这意味着构成了一个闭包(closure) p165 - “定义在哪里就能看到哪里的变量;调用在哪里,看不到的变量必须显式传入” - 如果 一个函数不包括return,那么它返回undefined。 - 函数声明语句不能出现在循环、条件、捕错语句中,函数定义表达式没有这个限制。 p168 - 严格模式下调用环境是undefined。 p169 - 如果你想访问这个外部函数的this,需要将this的值保存在一个变量里。p171 - 凡是没有形参的构造函数都可以省略圆括号。 - new的时候创建一个空的新对象,此对象继承构造函数的prototype,然后以此对象为上下文环境运行构造函数内的语句;构造函数使用新对象作为上下文环境。 p172 - 你应当假如实参检查逻辑,宁愿传入时报错,也不愿运行时报错 p177 - 函数时一种特殊的对象,函数可以拥有属性,当函数需要一个静止的变量在调用时候不变,最方便的就是给函数添加属性。p180 - (以对象为基准,数组和函数都是对象的特殊化) - 关联“闭包”的作用域链条都是活动的(当然了) p187 - arguments并不是关键字,但是每次调用函数都会声明它。 p188 - 函数的length代表的是参数个数。 - arguments.callee - 如果两个对象都从一个同一个对象处继承属性,那么两个对象是同一个类的实例。 p201 - (讲了一大堆面向对象编程的技术,先不看,没精力看) -

0
《JavaScript权威指南(第6版)》的全部笔记 135篇
豆瓣
免费下载 iOS / Android 版客户端