2019-2021 美团技术年货 前端篇种终 端形态的分布式理念。自 2020 年 9 月 HarmonyOS 2.0 发布以来,华为加快了鸿 蒙系统大规模落地的步伐,预计 2021 年底,鸿蒙系统会覆盖包括手机、平板、智能 穿戴、智慧屏、车机在内数亿台终端设备。对移动应用而言,新的系统理念、新的交 互形式,也意味着新的机遇。如果能够利用好鸿蒙的开发生态及其特性能力,可以让 应用覆盖更多的交互场景和设备类型,从而带来新的增长点。 Package 中分平台编程的方案。 代码级别分平台 针对代码级别的分平台,我们可以借助 Flutter SDK 提供的一个常量 kIsWeb。使用 方法如下: 查看源码可知,kIsWeb 之所以能被用于判断 Web 平台,是利用了 JavaScript 不支持整型的特征,在 Web 环境下,Dart 的 double 和 int 由相同类型的对象 支持,浮点数 “0.0” 等于整数 “0”,对于在 进行编译干预与优化(如按需分离 main.dart.js),减小资源包大小,有效提升 页面加载性能。 ● Flutter Web 基建:完善并优化开发、调试、编译、构建、部署链路,使得新 老项目能快速接入 Flutter Web。 ● Flutter Web 在 PC 侧的复用:与 UED 团队共同制订 PC 与 App 适配规范, 同时基于 Dart2js 和 dart:ui (Web)的强大能力,实现逻辑的抽象,完成组0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 JavaScript 版交流期間,我 最常被問到的一個問題是“如何入門演算法”。漸漸地,我對這個問題產生了濃厚的興趣。 兩眼一抹黑地刷題似乎是最受歡迎的方法,簡單、直接且有效。然而刷題就如同玩“踩地雷”遊戲,自學能 力強的人能夠順利將地雷逐個排掉,而基礎不足的人很可能被炸得焦頭爛額,並在挫折中步步退縮。通讀教 材也是一種常見做法,但對於面向求職的人來說,畢業論文、投遞履歷、準備筆試和面試已經消耗了大部分 精力,啃厚重的書往往變成了一項艱鉅的挑戰。 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 事實上,在電腦問世之前,演算法和資料結構就已經存在於世界的各個角落。早期的演算法相對簡單,例如 才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能 夠透過程式設計來實現它們。在此基礎上,本書致力於揭示演算法在複雜世界中的生動體現,展現演算法之 美。希望本書能夠幫助到你! i 目 錄 第 0 章 前言 1 0.1 關於本書 . .0 码力 | 379 页 | 18.78 MB | 10 月前3
廖雪峰JavaScript教程那么问题来了,为什么我们要学JavaScript?尤其是当你已经掌握了某些其他编程语言如Java、 C++的情况下。 简单粗暴的回答就是:因为你没有选择。在Web世界里,只有JavaScript能跨平台、跨浏览器驱动网 页,与用户交互。 Flash背后的ActionScript曾经流行过一阵子,不过随着移动应用的兴起,没有人用Flash开发手机 App,所以它目前已经边缘化了。相反,随着 注意花括号 {…} 内的语句具有缩进,通常是4个空格。缩进不是JavaScript语法要求必须的,但缩 进有助于我们理解代码的层次,所以编写代码时要遵守缩进规则。很多文本编辑器具有“自动缩进”的功 能,可以帮助整理代码。 {…} 还可以嵌套,形成层级结构: 基本语法 语法 2.1 基本语法 - 13 - 本文档使用 书栈(BookStack.CN) 构建 1. if (2 > 1) { 由于JavaScript这个设计缺陷,不要使用 == 比较,始终坚持使用 === 比较。 另一个例外是 NaN 这个特殊的Number与所有其他值都不相等,包括它自己: 1. NaN === NaN; // false 唯一能判断 NaN 的方法是通过 isNaN() 函数: 1. isNaN(NaN); // true 最后要注意浮点数的相等比较: 1. 1 / 3 === (1 - 2 / 3); // false0 码力 | 264 页 | 2.81 MB | 10 月前3
阮一峰 JavaScript 教程页,而是越来越像一个平台,JavaScript 因此得以调用许多系统功 为什么学习 JavaScript? 操控浏览器的能力 广泛的使用领域 导论 - 11 - 本文档使用 书栈(BookStack.CN) 构建 能,比如操作本地文件、操作图片、调用摄像头和麦克风等等。这使得 JavaScript 可以完成许多以前无法想象的事情。 (2)Node Node 项目使得 JavaScript 可以用于开发服务器端的大型项目,网 有一些有利条件。 (1)学习环境无处不在 易学性 导论 - 13 - 本文档使用 书栈(BookStack.CN) 构建 只要有浏览器,就能运行 JavaScript 程序;只要有文本编辑器,就 能编写 JavaScript 程序。这意味着,几乎所有电脑都原生提供 JavaScript 学习环境,不用另行安装复杂的 IDE(集成开发环境) 和编译器。 (2)简单性 相比其他脚本语言(比如 框架移植到了手机端,可以用来开发手机 App。它会将 JavaScript 代码转为 iOS 平台的 Objective-C 代码,或者 Android 平台的 Java 代码,从而为 JavaScript 语言开发高性 能的原生 App 打开了一条道路。 2015年4月,Angular 框架宣布,2.0 版将基于微软公司的 TypeScript语言开发,这等于为 JavaScript 语言引入了强类型。 2015年5月,Node0 码力 | 540 页 | 3.32 MB | 10 月前3
阮一峰 《ECMAScript 6入门》 第三版}; } a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一 个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的 函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所 有数组 a 的成员里面的 i ,指向的都是同一个 i ,导致运行时输出的是最后一 象的扩展》一章)。 let { foo: foo, bar: bar } = { foo: "aaa", bar: "bbb" }; 也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变 量。真正被赋值的是后者,而不是前者。 let { foo: baz } = { foo: "aaa", bar: "bbb" }; baz // "aaa" foo // error: {start: Object} start // Object {line: 1, column: 5} 上面代码有三次解构赋值,分别是对 loc 、 start 、 line 三个属性的解构赋 值。注意,最后一次对 line 属性的解构赋值之中,只有 line 是变 量, loc 和 start 都是模式,不是变量。 下面是嵌套赋值的例子。 let obj = {}; let0 码力 | 679 页 | 2.66 MB | 1 年前3
ECMAScript规范 第三版 中文版言。在这些系统中,实用的功能可通过一个用户界面来使用,脚本语言就是一种通过程序控制 那些功能的机制。 于是,我们就说此系统为对象和设施提供了一个宿主环境,它们使得脚本语 言的能力变得完备。脚本语言是为了能被专业或非专业程序员所使用而设计的。为了适应 非专 业程序员,语言的一些方面会多少有些不严格。 ECMAScript 从一开始就被设计成一种网页脚本语言(Web scripting language)作为基于网页 并没有严格意义上的类,在这一点上不同于 C++、Smalltalk 或者 Java,不过作 为替代,它支持构造函数(constructors),利用它,可通过执行代码创建对象:给对象 分配 存 储,然后通过赋初始值来初始化对象属性的全部或部分。所有的构造函数都是对象,但并非所 有的对象都是构造函数。每个构造函数都有一个 Prototype(原 型)属性,被用于实现基于原 型继承(prototype-based 不同于基于类的面向对象语言,ECMAScript 中的属性可以通过给它们赋值的方式,把它们 动态添加给对象。也就是说,构造函数不需要给所构造的对象的部分或全部属性命名或赋值。 在上面的图表中,通过给 CFp 中的属性赋新值就可以给 cf1,cf2, cf3,cf4 和 cf5 添加新的共享 属性。 4.3 定义 下面给出了与 ECMAScript 有关的关键术语的非正式定义。 4.3.1 类型 类型是数据取值的集合。0 码力 | 58 页 | 563.06 KB | 1 年前3
Hello 算法 1.1.0 JavaScript版在评论区提出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 复杂度分析可以消除实际测试的弊端,分析结果适用于所有运行平台,并且能够揭示算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版在评论区提出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 高效地展开阶段二和阶段三的学习。 第 0 章 前言 www.hello‑algo.com 9 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 复杂度分析可以消除实际测试的弊端,分析结果适用于所有运行平台,并且能够揭示算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版为你解答,一般情况下可在两天内回复。 第 0 章 前言 hello‑algo.com 7 如图 0‑6 所示,每篇文章的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解大家遇 到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分享您 的见解,帮助他人进步。 图 0‑6 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 所示,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。 第 0 章 前言 hello‑algo.com 8 图 0‑7 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果已有一定基础,本书能帮助您系统回顾算法知识,书内源代码也可 作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构、算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书籍至关重要,可以少走许多弯路。 复杂度分析可以克服实际测试的弊端,分析结果适用于所有运行平台,并且能够揭示算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版在评论区提出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 复杂度分析可以消除实际测试的弊端,分析结果适用于所有运行平台,并且能够揭示算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。0 码力 | 376 页 | 17.57 MB | 1 年前3
共 18 条
- 1
- 2













