JavaScript 正则表达式迷你书 老姚 - v1.1[\d\D]、[\w\W]、[\s\S] 和 [^] 中任何的一个。 以上各字符组对应的可视化形式是: JavaScript 正则表达式迷你书 1. 第一章 正则表达式字符匹配攻略 | 第 8 页 1.3. 量词 量词也称重复。掌握 {m,n} 的准确含义后,只需要记住一些简写形式。 1.3.1. 简写形式 量词 具体含义 {m,} 表示至少出现 m 次。 {m} 等价于 {m,m},表示出现 m 次。 ? 等价于 正则表达式迷你书 5. 第五章 正则表达式的拆分 | 第 46 页 操作符描述 操作符 优先级 转义符 \ 1 括号和方括号 (…)、(?:…)、(?=…)、(?!…)、[…] 2 量词限定符 {m}、{m,n}、{m,}、?、*、+ 3 位置和序列 ^、$、\元字符、一般字符 4 管道符(竖杠) | 5 上面操作符的优先级从上至下,由高到低。 这里,我们来分析一个正则: /ab 假设,要匹配这样的字符串: 1. 每个字符为 "a、"b"、"c" 任选其一, 2. 字符串的长度是 3 的倍数。 此时正则不能想当然地写成 /^[abc]{3}+$/,这样会报错,说 + 前面没什么可重复的: 此时要修改成: JavaScript 正则表达式迷你书 5. 第五章 正则表达式的拆分 | 第 48 页 5.2.3 元字符转义问题 所谓元字符,就是正则中有特殊含义的字符。 所有结构里,用到的元字符总结如下:0 码力 | 89 页 | 3.42 MB | 11 月前3
JavaScript 正则表达式迷你书 老姚 - v1.0[\d\D]、[\w\W]、[\s\S] 和 [^] 中任何的一个。 以上各字符组对应的可视化形式是: JavaScript 正则表达式迷你书 1. 第一章 正则表达式字符匹配攻略 | 第 8 页 1.3. 量词 量词也称重复。掌握 {m,n} 的准确含义后,只需要记住一些简写形式。 1.3.1. 简写形式 量词 具体含义 {m,} 表示至少出现 m 次。 {m} 等价于 {m,m},表示出现 m 次。 ? 等价于 正则表达式迷你书 5. 第五章 正则表达式的拆分 | 第 46 页 操作符描述 操作符 优先级 转义符 \ 1 括号和方括号 (…)、(?:…)、(?=…)、(?!…)、[…] 2 量词限定符 {m}、{m,n}、{m,}、?、*、+ 3 位置和序列 ^、$、\元字符、一般字符 4 管道符(竖杠) | 5 上面操作符的优先级从上至下,由高到低。 这里,我们来分析一个正则: /ab 假设,要匹配这样的字符串: 1. 每个字符为 "a、"b"、"c"任选其一, 2. 字符串的长度是 3 的倍数。 此时正则不能想当然地写成 /^[abc]{3}+$/,这样会报错,说 + 前面没什么可重复的: 此时要修改成: JavaScript 正则表达式迷你书 5. 第五章 正则表达式的拆分 | 第 48 页 5.2.3 元字符转义问题 所谓元字符,就是正则中有特殊含义的字符。 所有结构里,用到的元字符总结如下:0 码力 | 89 页 | 3.42 MB | 11 月前3
Hello 算法 1.0.0b5 JavaScript版Hot 100,先积累至少 100 道题目,熟悉 主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按 照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3‑5 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1. 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 第 1 章 初识算法 hello‑algo.com 11 查阅字典这个小学生必备技能,实际上就是著 成简单算 法的复杂度分析。 2.2 迭代与递归 在数据结构与算法中,重复执行某个任务是很常见的,其与算法的复杂度密切相关。而要重复执行某个任务, 我们通常会选用两种基本的程序结构:迭代和递归。 2.2.1 迭代 「迭代 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题 时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来 复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。推荐的题单和刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面, 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1. 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为 法的复杂度分析。 2.2 迭代与递归 在算法中,重复执行某个任务是很常见的,它与复杂度分析息息相关。因此,在介绍时间复杂度和空间复杂 度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。 2.2.1 迭代 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题 时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来 复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。推荐的题单和刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面, 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1. 和步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一 法的复杂度分析。 2.2 迭代与递归 在算法中,重复执行某个任务是很常见的,它与复杂度分析息息相关。因此,在介绍时间复杂度和空间复杂 度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。 2.2.1 迭代 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0 JavaScript版Hot 100”,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。 我们可以按照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1. 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为 法的复杂度分析。 2.2 迭代与递归 在算法中,重复执行某个任务是很常见的,它与复杂度分析息息相关。因此,在介绍时间复杂度和空间复杂 度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。 2.2.1 迭代 「迭代 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for0 码力 | 376 页 | 17.57 MB | 1 年前3
2019-2021 美团技术年货 前端篇项目性能指标数据差距已不大,可满足日常业务 要求。但加载性能数据仍有较大的优化空间,我们会持续对其进行探索。 5.3 滚动性能 针对滚动优化,我们通过修改 Flutter SDK,使得 Canvas 在页面滚动时无需重复 创建,而是被缓存起来。这样大大节省了内存的开销(优化后页面内存占用稳定为 100M 左右,与常规 Web 页面无异),同时在一定程度上提升了滚动性能。以商家学 院文章内容页为例,对比优化前后滚动 出一些建议, 非常感谢。 56 > 2021年美团技术年货 设计稿(UI 视图)自动生成代码方案的探索 作者:田贝 少宽 腾飞 1. 背景 设计稿(UI 视图)转代码是前端工程师日常不断重复的工作,这部分工作复杂度较低 但工作占比较高,所以提升设计稿转代码的效率一直是前端工程师追求的方向之一。 此前,前端工程师尝试过将业务组件模块化构建成通用视图库,并通过拖拽、拼接等 形式搭建业 第一个版本发布 到现在,已经接受了来自于公司各个业务两年多的考验。所以我们希望通过本文帮助 大家对 R2X 有一个大致的了解。 二、目标与场景 2.1 核心目标 为了解决业务需求在多端容器需要重复开发的难题,通过代码复用实现开发提效,我 们确定了以下的目标: ● 解决公司内部多终端容器开发痛点:实现 Webview 容器、小程序容器、MRN 容器、Mach 容器、游戏容器、部分运营推广场景0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版Hot 100,先积累至少 100 道题量,熟 悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,相关刷题心得可以 i++) { count++; } return count; } Figure 2‑7. 线性对数阶的时间复杂度 阶乘阶 ?(?!) 阶乘阶对应数学上的「全排列」。即给定 ? 个互不重复的元素,求其所有可能的排列方案,则方案数量为 ?! = ? × (? − 1) × (? − 2) × ⋯ × 2 × 1 阶乘常使用递归实现。例如以下代码,第一层分裂出 ? 个,第二层分裂出 nums 和一个整数目标值 target ,请你在该数组中找出“和”为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 「暴力枚举」和「辅助哈希表」分别对应 空间最优 和 时间最优 的两种解法。本着时间比空间更宝贵的原则,后 者是本题的最佳解法。 方法一:暴力枚举 考虑直0 码力 | 185 页 | 14.70 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版了。 总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存 在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该 变量。 不允许重复声明 let 不允许在相同作用域内,重复声明同一个变量。 // 报错 function () { let a = 10; var a = 1; } // 报错 function () { let ,在块级作用域之外不可引用。 function f() { console.log('I am outside!'); } (function () { if (false) { // 重复声明一次函数f function f() { console.log('I am inside!'); } } f(); }()); 上面代码在 ES5 中运行,会得到“I 浏览器的 ES6 环境 function f() { console.log('I am outside!'); } (function () { if (false) { // 重复声明一次函数f function f() { console.log('I am inside!'); } } f(); }()); // Uncaught TypeError:0 码力 | 679 页 | 2.66 MB | 1 年前3
廖雪峰JavaScript教程要计算1+2+3,我们可以直接写表达式: 1. 1 + 2 + 3; // 6 要计算1+2+3+…+10,勉强也能写出来。 但是,要计算1+2+3+…+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 JavaScript的循环有两种,一种是 for 循环,通过初始条件、结束条件和递增条件来循环执行语句 块: 1. var x = 0; 2. var i; 3 'use strict'; 2. var arr = ['Bart', 'Lisa', 'Adam']; 请尝试 for 循环和 while 循环,并以正序、倒序两种方式遍历。 循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”, 也就是永远循环下去。JavaScript的死循环会让浏览器无法正常显示或执行当前页面的逻辑,有的浏 览器会直接挂掉,有的 类似,也是一组key的集合,但不存储value。由于key不能重复,所以, 在 Set 中,没有重复的key。 要创建一个 Set ,需要提供一个 Array 作为输入,或者直接创建一个空 Set : 1. var s1 = new Set(); // 空Set 2. var s2 = new Set([1, 2, 3]); // 含1, 2, 3 重复元素在 Set 中自动被过滤: 1. var0 码力 | 264 页 | 2.81 MB | 10 月前3
共 15 条
- 1
- 2













