《JavaScript面向对象编程指南》读书笔记①
概述
JavaScript
快忘完了,想看一本专业书拾遗,所以看了这本《JavaScript面向对象编程指南》。
个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看起来非常爽!
现在我只记录一下我看这本书记录下的一些东西。那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的知识点,以后再看也可当做拾遗之用!
记录
- 对象,方法,属性和类的通俗解释:对象往往是用名词来表示的(也被称为实例);方法一般都是些动词;属性值则往往是一些形容词;类就是相似对象的共同特征。
- 什么是接口?以MP3播放器为例,如果MP3播放器是一个对象,那么作为该对象的用户,我们无疑需要一些类似于像按钮,显示屏这样的工作接口。这些接口能帮助我们使用该对象(如播放歌曲之类的)。至于它们内部是如何工作的,我们并不清楚。
- 所谓XX的初始化,实际上指的是XX首次(或者最初)被赋值或使用的时机。
- 我们可以将
2e+3
理解为将数字2的小数点向右移三位,同理2e-3
也就能被理解为是将数字2的小数点左移三位。 - \u后面的字符将会被视为
Unicode
码。 - 使用双重取反操作可以很容易的将任何值转换为等效的布尔值。
var mynumber=mynumber || 10
。- 代码的操作符,关键字前后要加空格,为了美观。
- 如何确定一个输入值是否是一个可以参与算术运算的数组?用
isNaN()
。 eval()
会将其输入字符串当做JavaScript
代码来执行。var a = 123; function f() {alert(a); var a = 1; alert(a);} f();
会显示什么?- 当我们将函数A传递给函数B,并由B来执行A时,A就成了一个回调函数。也就是说,回调函数就是当做参数使用的函数。(回调函数可参见《JavaScript面向对象编程指南》的第65页,非常精彩。)
- 自调匿名函数的好处在于这样不会产生任何全局变量。
- 有没有函数能够在每次调用的时候重写自己,然后每次调用的时候更新自己?有!利用能够返回函数的函数!(参见《JavaScript面向对象编程指南》的第69页,非常精彩。)
- 如果对象的属性名不符合JavaScript中的变量命名规则,就必须对其施加一对引号。
- 哈希表:以字符串为键值的关联型数组。
- 依照惯例,我们应该将构造器函数的首字母大写,一遍显著地区别于其他一般函数。
Function
构造器,eval()
和setTimeout()
都会以字符串的形式通过JavaScript的代码检查。Function
对象也有一个length
属性,用于记录该函数所拥有的参数数量;还有一个caller
属性,会返回一个调用该函数对象的外层函数引用。arguments
属性有一个callee
属性,它引用的是当前被调用的函数对象。Number
对象本身有5个内置属性和3个内置方法。- 基本类型的字符串不是字符串对象;基本类型的数字不是数字对象。
- 正则表达式的回调式替换
function f() {function c() {return this;} return c();} var o = new f();
其中this
指向的是谁?(window
)- 路很长,永远也没有终点,但是放弃只是一刹那的时间!共勉!
《JavaScript面向对象编程指南》读书笔记①的更多相关文章
- js_读【javascript面向对象编程指南】笔记
写在前面: 工欲善其事,必先利其器.编程的器,是前人总结的经验,常言道站在巨人的肩膀上开发,往往比自己另辟蹊径容易的多.经验藏于书,故有书中自有颜如玉,书中自有黄金屋,我也一度认为读书要花费很多时间, ...
- 《JavaScript面向对象编程指南(第2版)》读书笔记(一)
目录 一.对象 1.1 获取属性值的方式 1.2 获取动态生成的属性的值 二.数组 2.1 检测是否为数组 2.2 增加数组长度导致未赋值的位置为undefined 2.3 用闭包实现简易迭代器 三. ...
- 《JavaScript面向对象编程指南(第2版)》读书笔记(二)
<JavaScript面向对象编程指南(第2版)>读书笔记(一) <JavaScript面向对象编程指南(第2版)>读书笔记(二) 目录 一.基本类型 1.1 字符串 1.2 ...
- 《JavaScript面向对象编程指南》读书笔记②
概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...
- 闭包初体验 -《JavaScript面向对象编程指南》
下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...
- JavaScript面向对象编程指南(第2版)》读书笔记
一.对象 1.1 获取属性值的方式 water = { down: false } console.log(water.down) // false console.log(water['down'] ...
- 《JavaScript面向对象编程指南》译者序
相对于Perl.Python等动态脚本语言来说,JavaScript确实是一门饱受误解的语言.对于译者这种从20世纪90年代末走过来的C++程序员来说,尤其如此.在那个年代,提起JavaScript总 ...
- 《JavaScript面向对象编程指南》
第一章.引言 1.5 面向对象的程序设计常用概念 对象(名词):是指"事物"在程序设计语言中的表现形式. 这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作 ...
- [已读]JavaScript面向对象编程指南
又是一个忽悠人的书名,其实这本书的花了大量内容阐述JS的基础语法,BOM,DOM,事件,ajax(这个和很多js书一样).最后一章则是编程模式与设计模式. 我觉得与面向对象没多大关系,要算的话,pro ...
随机推荐
- python,opencv,imread,imwrite,存储,读取图像像素不一致,这种情况是label使用jpg格式
最近在做图像分割,需要使用一些分割图片的label,但是发现存储的分割label感觉被平滑过了,即使使用 image = cv2.imread(info['path'],cv2.IMREAD_UNCH ...
- pymysql 读取数据库没有字段
import pymysql # 打开数据库连接db = pymysql.connect("localhost", "root", "root&quo ...
- EasyUI自动消失的弹框
$.messager.show( { title : "系统提示", msg : "请选择提供商!!!" });
- 中间件之Kafka
(一)kafka简介 Kafka/Jafka 高性能跨语言的分布式发布/订阅消息系统,数据持久化,全分布式,同时支持在线和离线处理. 1.1 kafka设计目标 高吞吐率 在廉价的商用机器上单机可支持 ...
- Linux工作中常用命令
1. 搜索 在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位: 在vi和vim界面中输入:"/"(反斜杠),之后会出现一个输入框让 ...
- linux操作命令,批量注释#方法
用户,密码 1.修改密码:passwd 2.切换用户: su root 3.增加用户:adduesr+用户 4.root更改目录的权限:chown leopard:leopard data/ -R ...
- SpringMCVC拦截器不拦截静态资源
SpringMCVC拦截器不拦截静态资源 SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下 ...
- 利用Sharding-Jdbc实现分表[z]
[z]https://www.cnblogs.com/codestory/p/5591651.html 你们团队使用SpringMVC+Spring+JPA框架,快速开发了一个NB的系统,上线后客户订 ...
- django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call
Error info: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, ...
- ipcam
ipcam也叫ip network camera,就是基于internet protocol的网络摄像机,同普通摄像头或者网眼的主要区别是ipcam实际上是一台视频服务器和摄像头的集成.ipcam只要 ...