读书笔记----JavaScript 权威指南(一)

0.前言

最近小编我刚刚结束上一段的工作,结果立马就马不停蹄的开始了新一轮的工作了,表示无辜,(o′?ェ?`o),程序猿真是个累死人不偿命的工作呀。

今天晚上看到同事新启封的 JavaScript 权威指南,心血来潮的想,如果我能把这个书里面的重点以及具体知识点梳理出来,那么后来的人是不是就能少走一些弯路呢?

抱着这个想法,于是就开始了今天晚上的读书之旅,更由于小编喜欢整理东西这个习惯,才有了此文。

真心希望看到这篇文章的你,能够感受到小编那深沉的爱!~

1.JavaScript 语法核心 之 语法结构

1.1 字符集

1.1.1 区分大小写

  • 关键字,变量,函数名和所有的标示符全部采用一致的大小写形式
  • 需要注意,HTML 并不区分大小,而 JavaScript 中 HTML 的一些名称或者属性名则必须是小写的

1.1.2 空格,换行符和格式控制符

  • JavaScript 中会忽略程序中的标示(token)之间的空格
  • 我们的界面可以根据具体的内容而去进行具体的代码缩进,因此来保证界面的

    可读性和美观

1.2 注释

支持两种格式的注释

  1. 在行尾之后的 “ //” 内容都可以当做 JavaScript 的注释被忽略掉
  2. 在 “/” 和 “/” 之间的内容也会被当做注释
    • 可以跨行写
    • 但是内部不能嵌套注释

1.3直接量

程序中直接使用的数据值

  1. 数字 12
  2. 小数 0.12
  3. 字符串文本 “hello world”
  4. 另一个字符串 ‘hi’
  5. 布尔值 true
  6. 另一个布尔值 false
  7. 正则表达式的直接量(用作模式匹配) /javascript/gi

8.空 null

9.特殊直接量

  • 对象 { x:1,y:2 }
  • 数组 { 1,2,3 }

1.4 标示符和保留字

标示符就是一个名字

在 JS 中,标示符用来对变量和函数进行命名,或者是用作 JavaScript 代码中某些循环语句中的跳转位置的标记

命名规范

必须以下内容作为开始

  1. 字母
  2. 下划线(_)
  3. 美元符($)

1.5 保留字

命名不是随意命名的,

因为程序中有一些名字已经被系统占用了.

例如

break
class
if
else
while
...

1.5 可选的分号

;可以将语句分割开,以此可以增强语句的可读性和整洁性,

但是假如没有正确的进行语句的分割,反而会造成灾难性的后果。

想象中正确的解析方式
    var y = x + f
    (a + b).toString()
实际的解析方式
    var y = x + f(a + b).toString()

有一些老的程序员喜欢在每句话的开始就首先去打一个分号,

这样做的好处就是无论之前的一句话具体是如何操作的,

当前这句话都可以被正确的解析。

2.JavaScript 语法核心 之 类型,值,变量

2.1 JavaScript 中数据类型分为两种

三种划分方式

第一种

原始类型
    数字
    字符串
    布尔值
    特殊的原始类型
        null
        undefined
    代表了各自特殊类型的唯一成员
对象类型
    对象是属性的集合,每个属性都由 “名/值对”
        值可以是原始值,如数字,字符串,也可以是对象
        存在一个特殊的对象----全局对象

第二种

拥有方法的类型
不能拥有方法的类型

第三种

可变类型
    对象
    数组
不可变类型
    数字
    布尔值
    null
    undefined

2.2 数字

JavaScript 中不区分整数和浮点数,所有数字全部以浮点数值表示。

当一个数字直接出现在 JavaScript 程序中,我们称之为数字直接量。

2.2.1 整数直接量

十进制
    100000
十六进制
    0x**
    0X**
八进制
    不支持使用
    能够通过取巧实现
        0377 -> 3 * 64 + 7 * 8 + 7 = 255

2.2.2 浮点型直接量

浮点型直接量可以包含小数点

还可以使用指数计数法表示浮点型直接量

在实数后跟数字 e 或者 E

 6.02e23  //6.02 * 10 ^ 23

 1. 4738223E - 32    //1.4738223 * 10 ^ -32

2.2.3 JavaScript 中的算数运算

基础运算符

+

-

*

/

%

…

复杂运算符

通过 Math 对象的属性定义的函数和常量来实现

Math.round(.6)     //1.0:四舍五入

Math.ceil(.6)      //1.0 向上取整

Math.floor(.6)     //0.0 向下取整

Math.abs(-5)       //5   绝对值

Math.max(x,y,z)    //返回最大值

Math.min(x,y,z)    //返回最小值

Math.random()      //生成一个大于0,小于 1.0 的伪随机数

Math.PI            //π  3.141592673

2.2.4 JavaScript 中的算数运算的特殊情况

溢出(overflow)

运算结果超出 JavaScript 所能表示的数字上限

  • 超过正的最大以 Infinity 表示
  • 超过负的最大以 -Infinity 表示

下溢(underflow)

运算结果无限接近于0并且比 JavaScript 所能表示的最小值还要小的时候

  • 正数返回 0
  • 负数返回 -0
  • 和0几乎一样,很少会用到

被零整除

正常状态下

返回 infinity 或者 - infinity

0 除以 0

无意义,会得到 NaN(not - a - number)

除此之外,无穷大除以无穷大,给负数做开方,算数运算符与不是算数运算符或无法转换为数字的操作数一起使用的时候都会返回 NaN.

这三种情况不会进行报错

2.2.5 二进制浮点数和四舍五入错误

JavaScript 中数字具有足够的精度,但是偶尔也会带来一定的问题

var x = .3 - .2;      /*三十美分减去二十美分*/
var y = .2 - .1;      /*二十美分减去十美分*/
x==y                  /*false*/
x==.1                 /*false*/
y==.1                 /*true*/

原因:真实运行环境下 0.3 - 0.2 = 0.09999999999999999998

2.2.6 日期和时间

JavaScript 中包含 Date()构造函数

用于创建表示日期和时间的对象

例如

var then = new Date(2011, 0, 1);                    //2011年1月1日

var then = new Date(2011, 0, 1,17, 10, 30);   //2011年1月1日当地时间5:10:30PM

var now = new Date();                                //当前日期和时间

var elapsed = now - then;                           //日期减法,计算时间间隔的毫秒数

later.getFullYear()                                      //2011

later.getMonth()                                         //从0 开始计数的月份 

later.getDate()                                       //从 1 开始计数的天数

later.getDay()                               //得到星期几,0表示星期日,5表示星期1

later.getHours()                                          //当地时间 

later.getUTCHours()                              //使用 UTC 表示小时的时间,基于时区

今天读书笔记就先写到这里,因为现在已经2016年07月11日22:36:18了,我也需要回家睡觉去了,下一篇文章更新时间不确定,反正肯定有时间就更新啦。

最后祝愿各个小伙伴工作顺利咯!~

撒泼打滚求点赞!~ 么么哒!~

时间: 07-10

读书笔记----JavaScript 权威指南(一)的相关文章

[读书笔记] CSS权威指南1: 选择器

通配选择器 可以与任何元素匹配,就像是一个通配符 /*每一个元素的字体都设置为红色*/ * { color: red; } 元素选择器 指示文档元素的选择器. /*为body的字体设置为红色*/ body { color: red: } 分组 选择器分组 h1, h2, h3 { color: red; } 声明分组 h1 { font: 18px Helvetica; color: purple; background: aqua; } 结合选择器和声明分组 h1, h2, h3 { font

[读书笔记] CSS权威指南2: 结构和层叠

层叠样式表中最基本的一个方面可能就是层叠——冲突的声明要通过这个层叠过程排序,并由此确定最终的文档表示.这个过程的核心是选择器及其相关声明的特殊性,以及继承机制. 特殊性 对于每个规则,用户代理会计算选择器的特殊性,并将这个特殊性附加到规则中的各个声明.如果一个元素有两个或多个冲突的属性声明,那么有最高特殊性的声明就会胜出. 选择器的特殊性由选择器本身的组件确定.特殊性值表述为4个部分,如:0,0,0,0.一个选择器的具体特殊性如下确定: 对于选择器中给定的各个ID属性值,加0,1,0,0. 对

读书笔记-Mycat权威指南-08-Mycat中的Join

Join Join 绝对是关系型数据库中最常用一个特性,然而在分布式环境中,跨分片的 join 确是最复杂的,最难解决一 个问题. Join:inner ,left,right,full,cross 尽量避免使用 Left join 或 Right join,而用 Inner join. 在使用 Left join 或 Right join 时,ON 会优先执行,where 条件在最后执行,所以在使用过程中,条件尽 可能的在 ON 语句中判断,减少 where 的执行少用子查询,而用 join.

读书笔记-Mycat权威指南-09-全局序列号

全局序列号介绍 在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,需要新的实现方式. 本地文件方式 原理:此方式 MyCAT 将 sequence 配置到文件中,当使用到 sequence 中的配置后,MyCAT 会更下 classpath 中的 sequence_conf.properties 文件中 sequence 当前的值. 配置方式: 在 sequence_conf.properties 文件中做如下配置, 使用示例: insert into table1(id

读书笔记-Mycat权威指南-03-Mycat中的概念

数据库中间件 Mycat 是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有 存储引擎,所以并不是完全意义的分布式数据库系统. Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服 务. 由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集 群构成了整个完整的数据库存储. 数据被分到多个分片数据库后,应用如果需要读取数据,就要需要处理多个数据源的数据. 如果没有数据库中间件,那么应用将直接面

读书笔记-Mycat权威指南-10-分片规则

分片规则概述 在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分.数据的聚合. 选择 合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理. 前面讲了数据切分中重要的几条原则,其中有几条是数据冗余,表分组(Table Group), 这都是业务上规 避跨库 join 的很好的方式,但不是所有的业务场景都适合这样的规则,因此本章将讲述如何选择合适的切分规则. Mycat 全局表 如果你的业务中有些数据类似于数据字典,比如配置文件的配

《javascript权威指南》读书笔记——第二篇

<javascript权威指南>读书笔记--第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字符集 JavaScript程序是用Unicode字符集编写. Unicode是ASCII和Latin-1的超集,支持几乎所有语言. ES3 要求支持Unicode 2.1及后续版本 ES5 要求支持Unicode 3及后续版本 2.1.1 区分大小写 JavaScript是区分大小写的. HTML 并不区分大

《javascript权威指南》读书笔记——第一篇

<javascript权威指南>读书笔记--第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本书来补充下. 今天是今年的196天,由于我之前承诺过,每天分享读书笔记,只是之前分享的是大众读物,所以随手分享到kindle阅读群里了.但是现在读的是技术类书籍,分享到kindle读书群不太合适,所以还是以博客的形式分享.这样子,一个链接,大家感兴趣了就点开看看,不感兴趣了,就不点开. 其实这篇文章应该是昨天

《JavaScript权威指南》读书笔记——JavaScript核心

前言 这本由David Flanagan著作,并由淘宝前端团队译的<JavaScript权威指南>,也就是我们俗称的“犀牛书”,算是JS界公认的“圣经”了.本书较厚(有1004页),读起来颇费功夫,但作为JavaScript(下文简称:JS)相关从业者,我还是鼎力推荐,一定要读完这本经久不息,好评如潮的JS“圣经”(如果您有耐心的读完,觉得还不错的,博客最后附有购买本书的优惠券,可自行领取). 说完本书重要性,下面重点介绍一下本书作者写书的逻辑性,简单来说本书分为四部分,第一部分:JS核心:第