[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 ECMAScript 变量是弱类型的 在学习高级编程语言的过程中,最先接触的,也是最重要的概念应该就是变量了。所谓“变 量”,一般意义上理解就是程序中用于存储数据信息的容器,或者也可以理解为用于替代数据 信息的符号。 ECMAScript 规范中定义的变量既可以存储数据信息,也可以定义为替代表达式的符号。 一般都是通过“var”关键字来定义变量,且定义的均是无特定类型的变量(也称为弱类型)。 因此,ECMAScript 因此,ECMAScript 变量可以初始化为任意类型的值,且可以随时改变变量的数据类型。当然, 我们不建议随意改变变量的数据类型,建议初始化成什么类型就一直沿用该类型,避免不必要 的麻烦。 2.2.2 变量的声明 ECMAScript 规范中规定通过“var”(单词 variable 的缩写)关键字来定义声明的变量, 当然也可以不使用“var”关键字。一般使用“var”关键字定义的是局部变量,而不使用“var” 关于【代码 2-1】的分析如下: 第 02~03 行代码通过“var”关键字分别定义了两个变量(i 和 j),并进行了初始化赋值 操作。注意,这里赋的值均是整数类型,因为 ECMAScript 变量弱类型的特点,所以解释程序 会自动为变量创建整数值; 第 04 行代码通过“var”关键字定义了一个变量表达式(var s = i + j;),而表达式中的变 量“i”和“j”正是第0 码力 | 52 页 | 3.83 MB | 1 年前3
ECMAScript规范 第三版 中文版........................................................................................12 4.3.1 类型 .................................................................................................. ..............................................................................13 4.3.10 Undefined 类型................................................................................................... ...................................................................................13 4.3.12 Null 类型...................................................................................................0 码力 | 58 页 | 563.06 KB | 1 年前3
阮一峰 JavaScript 教程目 录 致谢 介绍 前言 入门篇 导论 历史 基本语法 数据类型 概述 null,undefined 和布尔值 数值 字符串 对象 函数 数组 运算符 算术运算符 比较运算符 布尔运算符 二进制位运算符 其他运算符,运算顺序 语法专题 数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标准库 Object 对象 属性描述对象 语言(Smalltalk 的一种变种)。 正则表达式:借鉴 Perl 语言。 字符串和数组处理:借鉴 Python 语言。 为了保持简单,这种脚本语言缺少一些关键的功能,比如块级作用域、 模块、子类型(subtyping)等等,但是可以利用现有功能找出解决 办法。这种功能的不足,直接导致了后来 JavaScript 的一个显著特 点:对于其他语言,你需要学习语言的各种功能,而对于 Java 而设计的。但 是,JavaScript 没有采用 Java 的静态类型。正是因为 JavaScript 与 Java 有很大的相似性,所以这门语言才从一开始的 LiveScript 改名为 JavaScript。基本上,JavaScript 这个名 字的原意是“很像Java的脚本语言”。 JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型 对象(prototype)的继承链。这是它与0 码力 | 540 页 | 3.32 MB | 10 月前3
廖雪峰JavaScript教程目 录 致谢 JavaScript教程 1 JavaScript简介 2 快速入门 2.1 基本语法 2.2 数据类型和变量 2.3 字符串 2.4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 2.2 数据类型和变量 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是, 计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数 据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型: JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型: 1. 123; 10.5 % 3; // 1.5 注意 % 是求余运算。 字符串是以单引号'或双引号"括起来的任意文本,比如 'abc' , "xyz" 等等。请注 数据类型和变量 数据类型 Number 字符串 2.2 数据类型和变量 - 16 - 本文档使用 书栈(BookStack.CN) 构建 意, '' 或 "" 本身只是一种表示方式,不是字符串的一部分,因此,字符串 'abc'0 码力 | 264 页 | 2.81 MB | 10 月前3
Hello 算法 1.1.0 JavaScript版3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 www.hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** *0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0 JavaScript版3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 加粗,这类文字值得特别关注。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 50 码力 | 376 页 | 17.57 MB | 1 年前3
2019-2021 美团技术年货 前端篇年底,鸿蒙系统会覆盖包括手机、平板、智能 穿戴、智慧屏、车机在内数亿台终端设备。对移动应用而言,新的系统理念、新的交 互形式,也意味着新的机遇。如果能够利用好鸿蒙的开发生态及其特性能力,可以让 应用覆盖更多的交互场景和设备类型,从而带来新的增长点。 与面临的机遇相比,适配鸿蒙系统带来的挑战同样巨大。当前手机端,尽管鸿蒙系统 仍然支持安卓 APK 安装及运行,但长期来看,华为势必会抛弃 AOSP,逐步发展出 自己的生 理。同样,整个流程的大部分工作已经由 Flutter 统一,我们要做的仅仅是在原生容 器上监听用户的输入,并封装成指定格式交给引擎层而已。 在鸿蒙系统上,我们可以借助平台提供的 多模输入 API,实现多种类型事件的监听: flutterComponent.setTouchEventListener(touchEventListener); // 触摸及鼠标事件 flutterComponent.set Android(使用 Kotlin 或 Java)、iOS(使用 Swift 或 Objective-C)、Web、macOS、Windows 或 Linux 或其任意组合 编写插件包。 下面分别对这两种类型 Package 中如何分平台编程进行介绍。 (1) Dart Package Dart Package 是纯 Dart 编写,因此大部分代码均可由 dart2js 直接编译出 Web 平 台可运行的代码,但某些涉及0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.0.0b5 JavaScript版3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3 数字编码 * . . . . 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 关注。 ‧ 当涉及到编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习0 码力 | 375 页 | 30.68 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版本质 let 和 const 命令 39 const 实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址 不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向 的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数 组),变量指向的内存地址,保存的只是一个指针, const 只能保证这个指针是 固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个 clz32(1 << 29) // 2 对于小数, Math.clz32 方法只考虑整数部分。 Math.clz32(3.2) // 30 Math.clz32(3.9) // 30 对于空值或其他类型的值, Math.clz32 方法会将它们先转为数值,然后再计 算。 Math.clz32() // 32 Math.clz32(NaN) // 32 Math.clz32(Infinity) 上面代码中,两个运算结果的最后一位有效数字是有差异的。 Integer 数据类型 简介 JavaScript 所有数字都保存成64位浮点数,这决定了整数的精确程度只能到53个二 进制位。大于这个范围的整数,JavaScript 是无法精确表示的,这使得 JavaScript 不适合进行科学和金融方面的精确计算。 现在有一个提案,引入了新的数据类型 Integer(整数),来解决这个问题。整数类 型的数据0 码力 | 679 页 | 2.66 MB | 1 年前3
共 17 条
- 1
- 2













