2019-2021 美团技术年货 前端篇图片处理:经过对源码的大量阅读及梳理,我们发现图片请求的 URL 首先会 读取 meta 标签中 assetBase 值进行 URL 路径拼接,根据拼接好的 URL 来获取资源。目前,在项目 web/index.html 模板文件中并没有 meta 标 签,于是就会根据相对路径进行请求。解决方案是在编译过程中,根据请求环 境增加 meta 标签并把 content 设置为 CDN 路径。 ● JavaScript 由各平台 Compiler 进行转译; ● Dart2JS Compiler 是 Dart-SDK 中具体负责转译 JS 的模块,它将上述中 间产物 app.dill 进行读取和解析,并注入 Math、List、Map 等 JS 工具方法, 最终生产出 Web 平台所能执行的 JS 文件。 ● 编译产物主要为 main.dart.js、index.html、images 等静态资源,Flutter- Webpack、Rollup 等打包工具进 行抽离并赋予一个稳定的 Hash 值。同时,将 Runtime Manifest (分片文件的加载 46 > 2021年美团技术年货 逻辑和映射关系)注入到 HTML 文件中,这样保证了业务代码的变动不会影响到公 共包。借助常规 Web 项目的编译思路,我们深入分析了 FlutterWeb 中 Runtime Manifest 的生成逻辑和 PartJS0 码力 | 738 页 | 50.29 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12" '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12" 模板字符串 传统的JavaScript语言,输出模板通常是这样写的。 $('#result').append( 'There are ' + basket.count + ' ' + 'items in ' ); 上面这种写法相当繁琐不方便,ES6引入了模板字符串解决这个问题。 $('#result').append(` There are ${basket.count} items in your basket, ${basket.onSale} are on sale! `); 模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当 = "today"; `Hello ${name}, how are you ${time}?` 上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引 号,则前面要用反斜杠转义。 var greeting = `\`Yo\` World!`; 如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。 $('#list').html(`0 码力 | 679 页 | 2.66 MB | 1 年前3
阮一峰 JavaScript 教程console.log(foo); // 2 6. })() 上面代码中,严格模式下, eval 内部还是改写了外部变量,可见安全 风险依然存在。 总之, eval 的本质是在当前作用域之中,注入代码。由于安全风险和 不利于 JavaScript 引擎优化执行速度,所以一般不推荐使用。通常 情况下, eval 最常见的场合是解析 JSON 数据的字符串,不过正确 的做法应该是使用原生的 书栈(BookStack.CN) 构建 RegExp 对象提供正则表示式的功能。 正则表达式(regular expression)是一种表达文本模式(即字符 串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配 文本。比如,正则表达式给出一个 Email 地址的模式,然后用它来确 定一个字符串是否为 Email 地址。JavaScript 的正则表达式体系 是参照 Perl 配(有多少个 组匹配,就有多少个对应的参数)。此外,最后还可以添加两个参数, 倒数第二个参数是捕捉到的内容在整个字符串中的位置(比如从第五个 位置开始),最后一个参数是原字符串。下面是一个网页模板替换的例 RegExp 对象 - 384 - 本文档使用 书栈(BookStack.CN) 构建 子。 1. var prices = { 2. 'p1': '$1.99', 3.0 码力 | 540 页 | 3.32 MB | 10 月前3
前端开发者指南(2017)6.4 1.7 1.7.1 1.7.2 1.7.3 1.7.4 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 模块 依赖管理 包管理 JavaScript 动画 CSS 动画 图表/图形 UI 控件 代码质量测试 代码覆盖率测试 代码复杂性分析 集成测试 命令行/命令行界面 模板策略 模板引擎 单页应用 XHR 请求(亦称 AJAX) Web /浏览器 安全 HTML 语义 浏览器开发工具 前端开发技能 25 前端开发者为 ... 而开发 前端开发者所编写的 HTML、CSS0 码力 | 164 页 | 6.43 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版数据结构与算法的关系 如图 1‑4 所示,数据结构与算法高度相关、紧密结合,具体表现在以下三个方面。 ‧ 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法为数据结构注入生命力。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法为数据结构注入生命力。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 1. Q & A Q:作为一名程序员,我在日常工作中从未0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 JavaScript 版如圖 1‑4 所示,資料結構與演算法高度相關、緊密結合,具體表現在以下三個方面。 ‧ 資料結構是演算法的基石。資料結構為演算法提供了結構化儲存的資料,以及操作資料的方法。 ‧ 演算法為資料結構注入生命力。資料結構本身僅儲存資料資訊,結合演算法才能解決特定問題。 ‧ 演算法通常可以基於不同的資料結構實現,但執行效率可能相差很大,選擇合適的資料結構是關鍵。 圖 1‑4 資料結構與演算法的關係 來最好的選擇。 ‧ 演算法是在有限時間內解決特定問題的一組指令或操作步驟,而資料結構是計算機中組織和儲存資料 的方式。 ‧ 資料結構與演算法緊密相連。資料結構是演算法的基石,而演算法為資料結構注入生命力。 ‧ 我們可以將資料結構與演算法類比為拼裝積木,積木代表資料,積木的形狀和連線方式等代表資料結 構,拼裝積木的步驟則對應演算法。 1. Q & A Q:作為一名程式設計師,我在日常工0 码力 | 379 页 | 18.78 MB | 10 月前3
廖雪峰JavaScript教程法发挥出面向对象编程的威力。 JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉 Java或C#,很好,你一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表 示学生类型,但不表示任何具体的某个学生; 实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiaoming、xiaohong、0 码力 | 264 页 | 2.81 MB | 10 月前3
共 7 条
- 1













