展开全部

主编推荐语

零基础了解JavaScript语法要点,彩色代码图展现ES6和ES10的重要特性。

内容简介

本书包含大量精心绘制的示意图和丰富的示例代码,讲解了常用的JavaScript语法特性,为JavaScript初学者绘制了一条平缓的学习曲线。

本书涵盖原生数据类型、强制类型转换、作用域、闭包、运算符、面向对象编程、事件循环机制等内容。这些内容由浅入深,适合初学者按顺序阅读。本书还突出了ES10引入的一些新特性,便于有进阶需要的读者翻阅。

目录

  • 版权信息
  • 版权声明
  • 前言
  • 第1章 讲述形式
  • 1.1 理论
  • 1.2 实例
  • 1.3 代码清单
  • 1.4 示意图
  • 1.4.1 抽象概念
  • 1.4.2 代码片段
  • 1.5 主要内容
  • 1.6 注意事项
  • 第2章 Chrome控制台
  • 2.1 copy函数
  • 2.2 console.dir
  • 2.3 console.error
  • 2.4 console.time和console.timeEnd
  • 2.5 console.clear
  • 2.6 打印对象
  • 第3章 欢迎使用JavaScript
  • 3.1 入口点
  • 3.1.1 DOMContentLoaded
  • 3.1.2 注意事项
  • 3.1.3 导入外部脚本
  • 3.1.4 导入与导出
  • 3.2 严格模式
  • 3.2.1 对一个作用域开启严格模式
  • 3.2.2 严格模式小结
  • 3.3 字面量
  • Number(1)与newNumber(1)
  • 3.4 变量
  • 3.4.1 值占位符
  • 3.4.2 动态类型
  • 3.4.3 定义或声明
  • 3.5 引用传递
  • 3.6 作用域的怪癖
  • 3.6.1 怪癖1:函数内的let和const与全局变量
  • 3.6.2 怪癖2:var依附于window/this对象,而let和const不会
  • 第4章 语句
  • 4.1 求值语句
  • 4.2 表达式
  • 第5章 基本类型
  • 5.1 基本类型
  • 5.1.1 boolean
  • 5.1.2 null
  • 5.1.3 undefined
  • 5.1.4 number
  • 5.1.5 bigint
  • 5.1.6 string
  • 5.2 模板字符串
  • 富有创造性的用例
  • 5.3 symbol
  • 全局symbol注册表
  • 5.4 构造函数和实例
  • 5.5 对基本类型执行方法
  • 5.5.1 使用括号访问对象属性
  • 5.5.2 连接方法
  • 第6章 强制类型转换
  • 6.1 强制类型转换示例
  • 6.1.1 构造函数中的强制类型转换
  • 6.1.2 强制类型转换详解
  • 6.2 多个值相加
  • 6.3 运算符优先级
  • 6.4 字符串与数值的比较
  • 6.5 运算符优先级和结合性一览表
  • 6.6 左值和右值
  • 6.6.1 赋值运算符
  • 6.6.2 算术加法运算符
  • 6.7 null与undefined
  • 初始化或更新
  • 第7章 作用域
  • 7.1 变量定义
  • 7.1.1 区分大小写
  • 7.1.2 定义
  • 7.2 变量提升
  • 7.3 函数提升
  • 在函数作用域中定义变量
  • 7.4 变量类型
  • 7.5 作用域可见性的区别
  • 7.5.1 在全局作用域中
  • 7.5.2 在函数作用域中
  • 7.5.3 闭包
  • 7.5.4 在块级作用域中
  • 7.5.5 在类中
  • 7.6 const
  • 7.6.1 const和数组
  • 7.6.2 const和对象字面量
  • 7.6.3 const小结
  • 7.7 注意事项
  • 第8章 运算符
  • 8.1 算术运算符
  • 8.2 赋值运算符
  • 8.3 字符串运算符
  • 8.4 比较运算符
  • 8.5 逻辑运算符
  • 8.6 位运算符
  • 8.7 typeof运算符
  • 8.8 三元运算符
  • 8.9 delete
  • 8.10 in
  • 第9章 ...rest和...spread
  • 9.1 rest属性
  • 9.2 spread属性
  • 9.3 ...rest和...spread
  • 9.3.1 语法详解
  • 9.3.2 编写带rest参数的sum()函数
  • 9.3.3 使用spread来扁平化数组
  • 9.3.4 在数组、对象或函数参数之外使用spread
  • 9.4 解构赋值
  • 9.4.1 使用spread合并对象
  • 9.4.2 使用spread合并数组
  • 第10章 闭包
  • 10.1 闭包入门
  • 10.1.1 什么是闭包
  • 10.1.2 漂亮的闭包
  • 10.1.3 闭包小结
  • 10.2 参数个数
  • 10.3 柯里化
  • 第11章 循环
  • 11.1 JavaScript中的循环类型
  • 11.1.1 递增和递减
  • 11.1.2 动态生成HTML元素
  • 11.1.3 渲染列表
  • 11.1.4 动态排序的表格
  • 11.1.5 注意事项
  • 11.2 for循环
  • 11.2.1 基于零索引的计数器
  • 11.2.2 无限for循环
  • 11.2.3 多条语句
  • 11.2.4 递增数字
  • 11.2.5 for循环和let作用域
  • 11.2.6 嵌套for循环
  • 11.2.7 循环的长度
  • 11.2.8 跳步
  • 11.2.9 提前中断
  • 11.2.10 自定义中断条件
  • 11.2.11 跳转到标签
  • 11.2.12 跳出标记的块级作用域
  • 11.3 for...of循环
  • 11.3.1 for...of和生成器
  • 11.3.2 for...of和字符串
  • 11.3.3 for...of和数组
  • 11.3.4 for...of和对象
  • 11.3.5 for...of循环和转换的可迭代对象
  • 11.4 for...in循环
  • 11.5 while循环
  • while和continue
  • 第12章 数组和字符串
  • 12.1 Array.prototype.sort
  • 12.2 Array.forEach
  • 12.3 Array.every
  • 12.4 Array.some
  • 12.5 Array.filter
  • 12.6 Array.map
  • 12.7 Array.reduce
  • 12.7.1 Array.reduce与Array.filter
  • 12.7.2 更新数据库中的对象属性
  • 12.7.3 reduce的实际应用
  • 12.7.4 注意事项
  • 12.8 Array.flat
  • 12.9 Array.flatMap
  • 12.10 String.prototype.matchAll
  • 12.10.1 使用全局匹配符/g
  • 12.10.2 正则表达式的捕获组
  • 12.10.3 使用matchAll的理由
  • 12.10.4 matchAll的工作方式
  • 12.10.5 使用matchAll的捕获组示例
  • 12.10.6 注意事项
  • 12.11 比较两个对象
  • 12.11.1 编写arrcmp
  • 12.11.2 改进objcmp
  • 12.11.3 针对更复杂的对象测试objcmp
  • 12.11.4 objcmp小结
  • 第13章 函数
  • 13.1 函数
  • 13.1.1 函数结构
  • 13.1.2 匿名函数
  • 13.1.3 将函数赋给变量
  • 13.2 this关键字的来源
  • 第14章 高阶函数
  • 14.1 理论
  • 14.1.1 抽象
  • 14.1.2 编写第一个高阶函数
  • 14.2 定义
  • 14.3 抽象
  • 14.4 迭代器
  • 14.4.1 逐行解析map函数
  • 14.4.2 调用自定义的map函数
  • 14.4.3 调用Array.map
  • 14.4.4 for循环怎么了
  • 14.5 注意事项
  • 第15章 箭头函数
  • 15.1 箭头函数
  • 15.1.1 无return的返回
  • 15.1.2 作为事件的箭头函数
  • 15.2 箭头函数的结构
  • 15.2.1 实参
  • 15.2.2 从箭头函数返回
  • 15.3 ES风格函数的相似性
  • 15.3.1 无this绑定
  • 15.3.2 无arguments对象
  • 15.3.3 无构造函数
  • 15.3.4 传统函数和箭头函数用作事件回调函数
  • 15.3.5 继承的this语境
  • 第16章 动态创建HTML元素
  • 16.1 设置CSS样式
  • 16.2 使用appendChild方法向DOM中添加元素
  • 16.2.1 document.body
  • 16.2.2 getElementById
  • 16.2.3 querySelector
  • 16.3 编写函数来创建元素
  • 16.3.1 函数参数
  • 16.3.2 函数体
  • 16.3.3 导入并使用absolute函数
  • 16.4 使用构造函数来创建对象
  • 第17章 原型
  • 17.1 原型
  • 17.1.1 对象字面量的原型
  • 17.1.2 原型链接
  • 17.1.3 原型链
  • 17.1.4 查找方法
  • 17.1.5 数组方法
  • 17.2 父对象
  • 17.2.1 扩展自己的对象
  • 17.2.2 constructor属性
  • 17.2.3 Function
  • 17.3 原型实践
  • 17.3.1 对象字面量
  • 17.3.2 使用Function构造函数
  • 17.3.3 原型
  • 17.3.4 使用Object.create来创建对象
  • 17.3.5 示例继续
  • 17.3.6 构造函数
  • 17.3.7 new运算符
  • 17.3.8 class关键字
  • 第18章 面向对象编程
  • 18.1 Ingredient
  • 18.2 FoodFactory
  • 18.3 Vessel
  • 18.4 Burner
  • 18.5 灶台类型与多态炉灶
  • 多态
  • 18.6 类定义
  • 18.6.1 print.js
  • 18.6.2 Ingredient
  • 18.6.3 FoodFactory
  • 18.6.4 Fridge
  • 18.6.5 convert_energy_to_heat
  • 18.6.6 Vessel
  • 18.6.7 Burner
  • 18.6.8 Range
  • 18.7 组装
  • 18.7.1 定义成分
  • 18.7.2 实例化灶台对象
  • 第19章 事件
  • 19.1 浏览器事件
  • 19.2 合成事件
  • 19.2.1 事件对象
  • 19.2.2 事件捕获与事件冒泡
  • 19.2.3 dispatchEvent
  • 19.2.4 removeEventListener
  • 19.2.5 CustomEvent对象
  • 19.2.6 setTimeout
  • 19.2.7 setInterval
  • 19.3 拦截浏览器事件
  • 19.4 显示鼠标位置
  • 19.5 通用的鼠标事件类
  • 19.5.1 包含和使用Mouse类
  • 19.5.2 解析Mouse类
  • 第20章 网络请求
  • 20.1 回调地狱
  • Sailor API
  • 20.2 Promise
  • 20.2.1 Promise.resolve
  • 20.2.2 Promise.reject
  • 20.2.3 组装
  • 20.2.4 Promise.all
  • 20.2.5 Promise解析
  • 20.2.6 Promise小结
  • 20.3 axios
  • 20.4 Fetch API
  • 20.5 获取POST负载
  • 20.6 async/await
  • 20.6.1 async关键字的基础
  • 20.6.2 await
  • 20.6.3 async/await中的try-catch
  • 20.6.4 小结
  • 20.7 生成器
  • 20.7.1 yield
  • 20.7.2 捕获错误
  • 第21章 事件循环
  • 第22章 调用栈
  • 22.1 什么是调用栈
  • 在编码中运用调用栈
  • 22.2 执行语境
  • 22.2.1 什么是执行语境
  • 22.2.2 根执行语境
  • 22.2.3 工作方式
  • 22.3 代码中的执行语境
  • 22.3.1 window与全局作用域
  • 22.3.2 调用栈
  • 22.3.3 call、bind和apply
  • 22.3.4 栈溢出
展开全部

评分及书评

3.7
3个评分
  • 用户头像
    给这本书评了
    5.0

    JavaScript 是一门多范式语言。它引入了 class 关键字和单独的构造函数,用于替代传统的函数构造器。因此,拥有传统的面向对象编程经验的开发人员可以很快熟悉该语言。ES6 规范催生了一类全新的程序员,他们更尊重这门曾经被用来编写原始 DOM 脚本的语言。由于在浏览器中运行的 JavaScript 引擎(如 Chrome 浏览器的 V8)得到充分发展,JavaScript 不再被看作简单的脚本语言。对于 JavaScript 开发来说,这是一个全新的时代。如今,你经常会在互联网上发现标题类似于 “使用 JavaScript 创建机器人” 的视频。我们甚至仅使用 JavaScript 就能创建可以在 Windows 10 中运行的桌面应用程序。

      转发
      评论
      用户头像
      给这本书评了
      1.0

      讲解的非常粗糙!

        转发
        1

      出版方

      人民邮电出版社·图灵出品

      图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。