# JavaScript权威指南 **Repository Path**: SunnyRuanNingNing/java-script ## Basic Information - **Project Name**: JavaScript权威指南 - **Description**: JavaScript权威指南 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-19 - **Last Updated**: 2022-10-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaScript 权威指南 ## 第 1 章:JavaScript 简介 - JavaScript 是一门高级、动态、解释型编程语言,非常适合面向对象和函数式编程风格。 1.1 探索 JavaScript - 学习一门新编程语言,很重要的是尝试书中的示例,然后修改这些示例并再次运行,以验证自己对这门语言的理解。 1.2 Hello World - console.log():在控制台打印文本 1.3 JavaScript 之旅 - 代码示例中的注释语法 - // => :这些箭头是在模拟交互式 JavaScript 环境(例如浏览器控制台),在纸质书上展示注释前面的代码产生的值。 - // a == 43 :意味着在注释前面的代码运行之后,变量 a 的值将是 43 - // ! exception :意味着注释前面的代码抛出了异常(而注释中 ! 后面的内容通常会解释抛出的是什么异常) - this 关键字:引用的是方法所在的对象。 - while 循环:当 () 中的表达式为 true 时重复执行 {} 中的语句。 1.4 示例:字符频率柱形图 - 注意:需要在 Unix 环境下运行! 1.5 小结 - 学习方法:假如某一节内容你怎么也看不懂,可以先跳过去。等你对这门语言有了一个整体的了解时,可以再回来了解那些细节。 - 想要真正掌握 JavaScript 必须理解细节! ## 第 2 章:词法结构 2.1 JavaScript 程序的文本 - JavaScript 区分大小写。 - JavaScript 忽略程序记号(token)之间的空格。 2.2 注释 - 单号注释:// - 多行注释 /* ... */ 2.3 字面量 - 字面量(literal):一种直接出现在程序中的数据值。 2.4 标识符和保留字 - 简单来说,标识符就是一个名字。 - 在 JavaScript 中,标识符用于在 JavaScript 代码中命名常量、变量、属性、函数和类,以及为某些循环提供标记(label)。 - JavaScript 标识符必须以字母、下划线(_)或美元符号($)开头。 - 总之:数字不能作为第一个字符,以便 JavaScript 区分标识符和数值。 - 保留字:不能作为常规标识符使用。 2.5 Unicode - 建议在标识符中只使用 ASCII 字母和数字。(这只是一个编程惯例) 2.6 可选的分号 - (1)防御性添加一个分号:实践中,经常在以 ( 和 [ 开头的语句前添加一个分号(;),来防御前面语句的修改而造成的影响。 - eg. - let x = 0 - ;[x, x + 1, x + 2].forEach(console.log) // 防御:保证这条语句独立。 - (2)一定不能在 return、break 或 continue 等关键字和它们后面的表达式之间加入换行符! - (3)涉及 ++ 和 -- 操作符:这些操作符既可以放在表达式前面,也可以放在表达式后面。如果想把这两个操作符作为后置操作符,那他们必须与自己操作的表达式位于同一行。 - (4)涉及 “箭头” 语法定义的函数:箭头( => )必须跟参数列表在同一行。 ## 第 3 章:类型、值和变量 - 编程语言中这些可以表示和操作的值被称为类型。 - 程序在需要把某个值保存下来以便将来使用时,会把这个值赋给(或存入)变量。 - 变量有名字,程序可以通过这些名字来引用值。 3.1 概述与定义 - JavaScript 类型分为两类:原始类型 和 对象类型。 - 原始类型包括:数值、文本字符串(字符串)、布尔真值(布尔值)、null、undefined、符号(Symbol)。 - JavaScript 中的特殊值 null 和 undefined 也是原始值,但他们不是数值,字符串或布尔值。 - 以上这两个值通常被认为是各自特殊类型的唯一成员。 - ES6 新增了一种特殊类型 Symbol(符号),用于对语言进行扩展而不破坏向后兼容性。 - 在 JavaScript 中,任何不是数值、字符串、布尔值、符号、null 和 undefined 的值都是对象。 - 对象(也就是对象类型的成员)是属性的集合,其中每个属性都有一个名字和一个值(原始值或其他对象)。 - 有一个非常特殊的对象叫 全局对象。 - 普通 JavaScript 对象是一个命名值的无序集合。 - 数组表示一个数字值的有序集合。 - Set 对象表示一组值的集合。 - Map 对象表示键与值的映射。 - 各种 “定型数组”(typed array)类型便于对字节数组和其它二进制数据进行操作。 - RegExp 类型表示文本模式,可以实现对字符串的复杂匹配、搜索和替换操作。 - Date 类型表示日期和时间,支持基本的日期计算。 - Error 及其子类型表示 JavaScript 代码运行期间可能会发生的错误。 - JavaScript 与静态语言更大的差别在于,函数和类不仅仅是语言的语法,它们本身就是可以被 JavaScript 程序操作的值。 - 与其它 JavaScript 非原始值一样,函数和类也是特殊的对象。 - 在 JavaScript 中,只有 null 和 undefined 是不能调用方法的值。 - JavaScript 的对象类型是可修改的(mutable),而它的原始类型是不可修改的(immutable)。 - 可修改类型的值可以改变,比如 JavaScript 程序可以修改对象属性和数组元素的值。 - 数值、字符串、布尔值、符号、null 和 undefined 是不可修改的。 - const:声明常量 - let:声明变量 - JavaScript 常量和变量是无类型的(untyped),声明并不会限定要赋何种类型的值。 3.2 数值 - JavaScript 的主要数值类型 Number 用于表示整数和近似实数。 - 注意:JavaScript 中的某些操作(数组索引和位操作)是以 32 位整数计算的。 - 当数值真正出现在 JavaScript 程序中时,就叫作数值字面量(numeric literal)。 - 注意:任何数值字面量前面都可以加上一个减号(-)将数值变成负值。 3.2.1 整数字面量 - 十六进制:0x 或 0X 开头. 0xff - 十进制:正常书写。255 - 八进制:0o 或 0O 开头. 0o377 - 二进制:0b 或 0B 开头. 0b10101 3.2.2 浮点字面量 - 字符字面量可以包含小数点。 3.2.3 JavaScript 中的算术 - 3.3 文本 3.4 布尔值 3.5 null 与 undefined 3.6 符号 3.7 全局对象 3.8 不可修改的原始值与可修改的对象引用 3.9 类型转换 3.10 变量声明与赋值 3.11 小结