JavaScript权威指南

第2章 词法结构#

2.1 字符集##

JavaScript程序是用Unicode字符集编写的。

2.1.1 区分大小写###

但HTML不区分大小写。

2.1.2 空格、换行符和格式控制符###

JS会忽略标识之间的空格,多数情况也会忽略换行符,因此可以采用整齐的缩进来形成统一的编码风格,提高代码可读性。

2.2 注释##

JS支持两种注释。//单行注释。 /**/可跨行注释,但不能有嵌套注释。

2.3 直接量##

指程序中直接使用的数据值,如数字、字符串文本、布尔值、空、正则表达式直接量。

2.4 标识符和保留字##

JS标识符必须以字母、下划线或美元符开始(不可以是数字),后续字符可以是字母、数字、下划线和美元符。和其他编程语言一样,JS也保留了一些标识符用作自己的关键字,这些保留字不能用作普通的标识符。


JS保留字.png

JS预定义全局变量.png

2.5 可选的分号##

如果语句各自独占一行,通常可以忽略语句之间的分号,程序结尾或右花括号前的分号可省略。两种编程风格,分号全部不省略,分号能省则省。注意,JS不是在所有换行处都填补分号,只有在缺少了分号就无法正确解析代码时才会填补分号。省略分号可能造成一些分歧。

第3章 类型、值和变量#

3.1 数字##

JS不区分整数值和浮点数值,所有数字均用浮点数值表示。JS中直接出现的数字称为数字直接量,负号是一元求反运算符,不属于数字直接量语法的组成部分。

3.1.1 整型直接量###

JS可识别十进制、十六进制整型直接量,有些能识别八进制。

3.1.2 浮点型直接量###

采用传统的实数写法,也可以用指数计数法(e后跟实数表示乘以10的次方)。

3.1.3 算数运算###

除基本运算符外,JS还支持更复杂的算数运算,通过作为math对象的属性定义的函数和常量来实现。


复杂的算数运算.png

JS运算在溢出overflow、下溢underflow、被零整除时都不会报错。溢出结果为±infinity,下溢为±0,被零整除为±0,但0除以0返回一个非数字值NaN。NaN与任何值都不相等,包括自身。x!=x,只有在NaN时为true。

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

3.1.5 日期和时间###

Date()构造函数,用来创建表示日期和时间的对象。

3.2 文本##

字符串string是由16位值组成的不可变的有序序列,字符串和其数组的索引从0开始。

3.2.1 字符串直接量###

JS中的字符串直接量是由单引号或双引号括起来的字符序列。字符串直接量可拆分成数行,每行以 \ 结束。注意用单引号定界字符串时,要小心英文缩写和所有格写法,如it's,需用 \ 对撇号进行转义。当JS与HTML代码混杂时,最好各自使用独立的引号风格。

3.2.2 转义字符###

在JS字符串中,反斜线\有特殊用途。


转义字符.png

3.2.3 字符串的使用###

加号运算符用于数字,表示两数相加,用于字符串表示字符串连接。


字符串调用方法.png

3.2.4 模式匹配###

RegExp()构造函数

3.3 布尔值##

这个类型只有两个值,保留字true和false.通常用于JS控制结构中。任意JS值都可以转换为布尔值。布尔运算符&&、||、!(AND、OR、NOT)

3.4 null和undefined##

3.5 全局对象##

3.6 包装对象##

存取字符串、数字或布尔值的属性时创建的临时对象叫包装对象。

3.7 不可变的原始值和可变的对象引用##

JS中的原始值(null、undefined、布尔值、数字和字符串)与对象(数组和函数)有根本区别。原始值不可更改,原始值的比较是值的比较。对象的值是可修改的,对象的比较并非值的比较,是引用的比较,当且仅当它们引用同一个基对象时才相等。

3.8 类型转换##

类型转换.png

3.8.1 转换和相等性###

JS运算符和语句期望使用多样化的数据类型,并可以相互转换。但一个数值转换为另一个数值,并不代表二者相等。

3.8.2 显式类型转换###

做显式转换最简单的方法是用Boolean()、Number()、String()、Object()函数。某些运算符会做隐式类型转换。

3.8.3 对象转换为原始值###

所有的对象继承了两个转换方法,toString()和valueOf()

3.9 变量声明##

在JS中使用一个变量前需要先声明,用var声明,一个var可声明多个变量,还可将变量的初始赋值与变量声明合写在一起。

3.10 变量作用域##

全局变量拥有全局作用域,函数内声明的变量只在函数体内有定义,是局部变量。函数参数也是局部变量,只在函数体内有定义。函数体内,局部变量的优先级高于同名的全局变量。

3.10.1 函数作用域和声明提前###

C语言等编程语言是块级作用域,JS是函数作用域,变量在声明它的函数体内及这个函数体嵌套的任意函数体内都有定义。JS里声明的所有变量都被“提前”到函数顶部。

3.10.2 作为属性的变量###

使用var声明一个变量,创建的这个属性是不可配置的,变量也不能用delete运算符删除;如果给一个未声明的变量赋值,JS自动创建全局变量,可配置属性,也可用delete删除。

3.10.3 作用域链###

第4章 表达式和运算符#

4.1 原始表达式##

原始表达式包括常量或直接量、变量、关键字。

4.2 对象和数组的初始化表达式##

数值的初始化表达式是由一对方括号和括号内由逗号隔开的列表组成,可嵌套。

4.3 函数定义表达式##

4.4 属性访问表达式##

两种写法:expression.identifier; expression[expression];

4.5 调用表达式##

调用函数或方法的语法。表达式(参数0个或多个)。

4.6 对象创建表达式##

创建一个对象并调用一个函数(构造函数)初始化新对象的属性。与函数调用表达式非常相似,只是表达式前多了个new。

4.7 运算符概述##

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容