前言
这是一本老道(douglas crockford)写的关于js的经典书籍,这本书的英文名称叫做《javascript:the good parts》,它诠释的是js这门语言的精彩部分,可以说他将js这门语言中最精华和有趣的部分都展现在大家面前了。
由于最近比较忙碌,在抽空搭建起blog了以后,直到现在才真正的提起劲头来准备真真的写点什么,其实也是为了给自己一个督促和鞭策,同时把在书中看到的觉得很棒的部分记录下来。
第二章 语法
本章介绍js的语法,这里没有什么特别的地方,语法是一门语言的入门基础,如果连语法都没有了解的话,更谈不上去了解这门语言的精粹了。
这里有几个值得注意的地方:
- js中没有整数和浮点数的概念,js中所有的数字都存储为64位浮点数,所以在js中
1 === 1.0
的结果是true -
for in
语句会枚举对象所有的值(包括原型链上的值),这里需要用object.hasOwnProperty(variable)
来对其进行检测。
第三章 对象
简单的来说,js中有两种类型,一种为简单类型,另一种为对象类型。简单类型包括:undefined, null, string, numnber,boolean。除此以外其他所有值均为对象。
对象的属性可以通过[]和‘.’运算符进行访问,其属性名只能是string,如果不是string也会被转换为string(es6中可以变为对象)。
||可以用来给对象或值设置默认值,而&&运算符可以容错,这主要是因为这两个运算的短路特性,并不需要特定去记忆,只要记忆其判断真假的情况就能轻松推出用法和结论。
除了简单类型外,对象都是通过引用来传递的,这是因为简单类型的变量名称和值都存放在栈中,而非简单类型的变量名称和指向堆中地址的指针存储在栈中。所以简单类型是值传递,而非简单类型是地址传递
原型只有在查询的时候才用到,所以当我们改变某个对象时,不会触及到他的原型,属性沿着原型链进行查找的过程称为委托。
delete运算符可以删除对象上的属性,删除属性后可以将原型链上的属性都暴露出来。删除成功与否取决于DontDelete属性是否为true,这里可以参考kangax关于delete的研究。
减少全局对象污染,可以采取两种方法:一、在全局对象上声明一个顶层对象,然后将相关的属性和方法都绑定到这个兑现下;二、采用闭包的方式。
更多内容请查看zakwu的小站
相关推荐
在《JavaScript 精粹》一书中,作者深入探讨了JavaScript的特性和最佳实践,旨在帮助开发者区分和利用其精华部分,同时避免那些可能会引起问题的鸡肋特性。 首先,JavaScript的某些特性带来了麻烦,因为其规范的不...
在《JavaScript语言精粹》的学习笔记中,我们可以深入探讨这些关键概念。 首先,JavaScript中的函数是基于词法作用域的。这意味着函数的作用域由其定义的位置决定,而不是由其调用的位置决定。这种设计允许程序员...
《ASP数据库开发实例精粹》是一本专注于使用ASP(Active Server Pages)进行数据库开发的实践指南。这本书的主要目的是通过丰富的实例来帮助读者深入理解和掌握如何利用ASP与各种数据库进行交互,实现动态网站功能。...
标题为“javascript 精粹笔记”的这份文档显然是一份针对JavaScript语言的学习和应用技巧的集合。JavaScript是一种广泛应用于Web前端开发的脚本语言,随着互联网技术的发展,JavaScript的应用越来越广泛,不仅限于...
javascript:闭包 作用域 原型 Javascript权威指南 Javascript高级程序员设计 Javascript语言精粹 Javascript模式
* 推荐书籍:JavaScript 高级程序设计、JavaScript 权威指南、JavaScript 语言精粹 * 学习方法:边实战边记笔记,不要光看,要有方法的快速阅读 三、JavaScript 进阶 * 推荐书籍:《你不知道的 JavaScript》 * ...
### 计算机书籍读书笔记知识点汇总 #### 第一篇:CSS精粹之布局技巧 **1. 错误检测的重要性** - 在遇到CSS布局问题时,及时进行代码检查可以帮助开发者快速定位并解决问题。 - **W3C提供的工具**:W3C提供XHTML...
### COM原理与应用全书笔记精粹 #### 一、COM基本概念与接口设计 COM(Component Object Model)是微软提出的一种组件对象模型,旨在实现跨语言、跨平台的组件互操作性。在C++中,COM通过接口(Interface)来实现...