 JavaScript 正则表达式迷你书 老姚 - v1.11. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.11. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
 JavaScript 正则表达式迷你书 老姚 - v1.01. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.01. 第一章 正则表达式字符匹配攻略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. 两种模糊匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. 横向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. 纵向模糊匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. 字符组 . . . . . . . . . . . . . . . . . . . . . . 3.1. 简写形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2. 贪婪匹配与惰性匹配. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. 多选分支 . . . . . . . . . .0 码力 | 89 页 | 3.42 MB | 11 月前3
 阮一峰 JavaScript 教程对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 《阮一峰 JavaScript 教程》 有功能找出解决 办法。这种功能的不足,直接导致了后来 JavaScript 的一个显著特 点:对于其他语言,你需要学习语言的各种功能,而对于 JavaScript,你常常需要学习各种解决问题的模式。而且由于来源多 样,从一开始就注定,JavaScript 的编程风格是函数式编程和面向 对象编程的一种混合体。 Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha, 1995年9月改为 JavaScript 的周边应用发展。 1996年,样式表标准 CSS 第一版发布。 1997年,DHTML(Dynamic HTML,动态 HTML)发布,允许动态改 变网页内容。这标志着 DOM 模式(Document Object Model,文 档对象模型)正式应用。 1998年,Netscape 公司开源了浏览器,这导致了 Mozilla 项目的 诞生。几个月后,美国在线(AOL)宣布并购0 码力 | 540 页 | 3.32 MB | 10 月前3 阮一峰 JavaScript 教程对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 《阮一峰 JavaScript 教程》 有功能找出解决 办法。这种功能的不足,直接导致了后来 JavaScript 的一个显著特 点:对于其他语言,你需要学习语言的各种功能,而对于 JavaScript,你常常需要学习各种解决问题的模式。而且由于来源多 样,从一开始就注定,JavaScript 的编程风格是函数式编程和面向 对象编程的一种混合体。 Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha, 1995年9月改为 JavaScript 的周边应用发展。 1996年,样式表标准 CSS 第一版发布。 1997年,DHTML(Dynamic HTML,动态 HTML)发布,允许动态改 变网页内容。这标志着 DOM 模式(Document Object Model,文 档对象模型)正式应用。 1998年,Netscape 公司开源了浏览器,这导致了 Mozilla 项目的 诞生。几个月后,美国在线(AOL)宣布并购0 码力 | 540 页 | 3.32 MB | 10 月前3
 阮一峰 《ECMAScript 6入门》 第三版组赋值给 a ,就会报错。 如果真的想将对象冻结,应该使用 Object.freeze 方法。 const foo = Object.freeze({}); // 常规模式时,下面一行不起作用; // 严格模式时,该行会报错 foo.prop = 123; let 和 const 命令 40 上面代码中,常量 foo 指向一个冻结的对象,所以添加新属性不起作用,严格模 式时还会报错。 返回的是当前模块。 函数里面的 this ,如果函数不是作为对象的方法运行,而是单纯作为函数运 行, this 会指向顶层对象。但是,严格模式下,这时 this 会返 let 和 const 命令 42 回 undefined 。 不管是严格模式,还是普通模式, new Function('return this')() ,总 是会返回全局对象。但是,如果浏览器用了CSP(Content 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 (Destructuring)。 以前,为变量赋值,只能直接指定值。 let a = 1; let b = 2; let c = 3; ES6 允许写成下面这样。 let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被0 码力 | 679 页 | 2.66 MB | 1 年前3 阮一峰 《ECMAScript 6入门》 第三版组赋值给 a ,就会报错。 如果真的想将对象冻结,应该使用 Object.freeze 方法。 const foo = Object.freeze({}); // 常规模式时,下面一行不起作用; // 严格模式时,该行会报错 foo.prop = 123; let 和 const 命令 40 上面代码中,常量 foo 指向一个冻结的对象,所以添加新属性不起作用,严格模 式时还会报错。 返回的是当前模块。 函数里面的 this ,如果函数不是作为对象的方法运行,而是单纯作为函数运 行, this 会指向顶层对象。但是,严格模式下,这时 this 会返 let 和 const 命令 42 回 undefined 。 不管是严格模式,还是普通模式, new Function('return this')() ,总 是会返回全局对象。但是,如果浏览器用了CSP(Content 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 (Destructuring)。 以前,为变量赋值,只能直接指定值。 let a = 1; let b = 2; let c = 3; ES6 允许写成下面这样。 let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被0 码力 | 679 页 | 2.66 MB | 1 年前3
 廖雪峰JavaScript教程a的值是整数123 2. a = 'ABC'; // a变为字符串 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须 指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下: 1. int a = 123; // a是整数类型变量,类型用int申明 2. a = "ABC"; // 错误:不能把字符串赋给整型变量 变量 范中推出了strict模式,在strict模式下 运行的JavaScript代码,强制通过 var 申明变量,未使用 var 申明变量就使用的,将导致运行 错误。 启用strict模式的方法是在JavaScript代码的第一行写上: 1. 'use strict'; 这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏 览器将开启strict模式运行JavaScript。 览器将开启strict模式运行JavaScript。 来测试一下你的浏览器是否能支持strict模式: 1. 'use strict'; 2. // 如果浏览器支持strict模式, 3. // 下面的代码将报ReferenceError错误: 4. strict模式 2.2 数据类型和变量 - 21 - 本文档使用 书栈(BookStack.CN) 构建 5. abc = 'Hello, world';0 码力 | 264 页 | 2.81 MB | 10 月前3 廖雪峰JavaScript教程a的值是整数123 2. a = 'ABC'; // a变为字符串 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须 指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下: 1. int a = 123; // a是整数类型变量,类型用int申明 2. a = "ABC"; // 错误:不能把字符串赋给整型变量 变量 范中推出了strict模式,在strict模式下 运行的JavaScript代码,强制通过 var 申明变量,未使用 var 申明变量就使用的,将导致运行 错误。 启用strict模式的方法是在JavaScript代码的第一行写上: 1. 'use strict'; 这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏 览器将开启strict模式运行JavaScript。 览器将开启strict模式运行JavaScript。 来测试一下你的浏览器是否能支持strict模式: 1. 'use strict'; 2. // 如果浏览器支持strict模式, 3. // 下面的代码将报ReferenceError错误: 4. strict模式 2.2 数据类型和变量 - 21 - 本文档使用 书栈(BookStack.CN) 构建 5. abc = 'Hello, world';0 码力 | 264 页 | 2.81 MB | 10 月前3
 TypeScript Handbook(中文版)
理想情况下,我们只需要在浏览器里引入React模块,但是大部分浏览器还没有支 持模块。 因此大部分代码库会把自己包裹在一个单独的全局变量内,比 如: jQuery 或 _ 。 这叫做“命名空间”模式,webpack也允许我们继续使用通过 这种方式写的代码库。 通过我们的设置 "react": "React" ,webpack会神奇地 将所有对 "react" 的导入转换成从 React ,它会发布一条明确 的action消息,这个消息必须被reducer函数处理。 由于使用了这样明确的方式,很 容易弄清楚一个action是如何影响程序的state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传 递。 通过将state标记为可观察的,即可在所有观察者之间保持state的同步性。 另 一个好处是,这个库已经使用TypeScript实现了。 DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; TypeScript Handbook(中文版) 79 React 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字 符串字面量类型。 接下来,我们创建一些actions以及创建这些actions的函 数, src/actions/index.tsx0 码力 | 557 页 | 7.48 MB | 1 年前3 TypeScript Handbook(中文版)
理想情况下,我们只需要在浏览器里引入React模块,但是大部分浏览器还没有支 持模块。 因此大部分代码库会把自己包裹在一个单独的全局变量内,比 如: jQuery 或 _ 。 这叫做“命名空间”模式,webpack也允许我们继续使用通过 这种方式写的代码库。 通过我们的设置 "react": "React" ,webpack会神奇地 将所有对 "react" 的导入转换成从 React ,它会发布一条明确 的action消息,这个消息必须被reducer函数处理。 由于使用了这样明确的方式,很 容易弄清楚一个action是如何影响程序的state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传 递。 通过将state标记为可观察的,即可在所有观察者之间保持state的同步性。 另 一个好处是,这个库已经使用TypeScript实现了。 DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; TypeScript Handbook(中文版) 79 React 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字 符串字面量类型。 接下来,我们创建一些actions以及创建这些actions的函 数, src/actions/index.tsx0 码力 | 557 页 | 7.48 MB | 1 年前3
 TypeScript 4.0 使用手册
,它会发布一条明确的action消息,这个消息必须被 reducer函数处理。 由于使用了这样明确的方式,很容易弄清楚一个action是如何影响程序的 state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传递。 通过将state 标记为可观察的,即可在所有观察者之间保持state的同步性。 另一个好处是,这个库已经使用 TypeScript实现了。 'DECREMENT_ENTHUSIASM'; 8. export type DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字符串字面量类 型。 接下来,我们创建一些actions以及创建这些actions的函数, src/actions/index.tsx 。 BookStack.CN 构建 那么你可以这样写: 1. export function feedPets(pets) { 2. // ... 3. } 有时你会完全重写导出对象。 这是一个常见模式,这会将模块变为可立即调用的模块: 1. var express = require("express"); 2. var app = express(); 之前你可以是这样写的: 1. function0 码力 | 683 页 | 6.27 MB | 1 年前3 TypeScript 4.0 使用手册
,它会发布一条明确的action消息,这个消息必须被 reducer函数处理。 由于使用了这样明确的方式,很容易弄清楚一个action是如何影响程序的 state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传递。 通过将state 标记为可观察的,即可在所有观察者之间保持state的同步性。 另一个好处是,这个库已经使用 TypeScript实现了。 'DECREMENT_ENTHUSIASM'; 8. export type DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字符串字面量类 型。 接下来,我们创建一些actions以及创建这些actions的函数, src/actions/index.tsx 。 BookStack.CN 构建 那么你可以这样写: 1. export function feedPets(pets) { 2. // ... 3. } 有时你会完全重写导出对象。 这是一个常见模式,这会将模块变为可立即调用的模块: 1. var express = require("express"); 2. var app = express(); 之前你可以是这样写的: 1. function0 码力 | 683 页 | 6.27 MB | 1 年前3
 electron中文教程
nt任务可以自动的处理这些内容 grunt- build-atom-shell. 这个任务会自动的处理编辑 .gyp 文件,从源代码进行编译,然后重编译你的应用程序的本地 Node 模块以匹配 这个新的可执行文件的名称。 分发应用 - 9 - 本文档使用 书栈(BookStack.CN) 构建 自从 v0.34.0,Electron 就允许提交应用包到 Mac App Store(MAS)。这个向导提供的信息有: pector.js 在 Chrome 中打开 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 5. 打开 Electron 的调试模式 6. 使用 Electron 开启 node-inspector 服务 7. 加载调试器界面 主进程调试 - 21 - 本文档使用 书栈(BookStack.CN) 构建 引自ChromeDriver Widevine CDM 插件装载 Chrome 浏览器 . Electron 没有为 Widevine CDM 插件 配制许可 reasons, 为了获得它,首先需要安装官方的 chrome 浏览 器,这匹配了体系架构和 Electron 构建使用的 chrome 版本 . 注意: Chrome 浏览器的主要版本必须和 Electron 使用的版本一样,否则插件不会有效,虽然 navigator.plugins0 码力 | 203 页 | 2.72 MB | 1 年前3 electron中文教程
nt任务可以自动的处理这些内容 grunt- build-atom-shell. 这个任务会自动的处理编辑 .gyp 文件,从源代码进行编译,然后重编译你的应用程序的本地 Node 模块以匹配 这个新的可执行文件的名称。 分发应用 - 9 - 本文档使用 书栈(BookStack.CN) 构建 自从 v0.34.0,Electron 就允许提交应用包到 Mac App Store(MAS)。这个向导提供的信息有: pector.js 在 Chrome 中打开 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 5. 打开 Electron 的调试模式 6. 使用 Electron 开启 node-inspector 服务 7. 加载调试器界面 主进程调试 - 21 - 本文档使用 书栈(BookStack.CN) 构建 引自ChromeDriver Widevine CDM 插件装载 Chrome 浏览器 . Electron 没有为 Widevine CDM 插件 配制许可 reasons, 为了获得它,首先需要安装官方的 chrome 浏览 器,这匹配了体系架构和 Electron 构建使用的 chrome 版本 . 注意: Chrome 浏览器的主要版本必须和 Electron 使用的版本一样,否则插件不会有效,虽然 navigator.plugins0 码力 | 203 页 | 2.72 MB | 1 年前3
 2019-2021 美团技术年货 前端篇(Web)的强大能力,实现逻辑的抽象,完成组 件、模块的适配,达到提效最大化; ● 跟进 Flutter 官方动向:Flutter 2.0 的发布,稳定了对 Web 的支持,同时默 认采用 Canvaskit 编译模式,此模式下对页面滚动性能有较大提升。但由于 canvaskit.wasm 文件过于庞大(2.5M),降低了加载性能,因此目前仍不建 议在 Web 侧直接使用 Canvaskit。不过官方承诺会在 2021 Widgets、 Gestures 等组件来实现逻辑跨端。而关于渲染跨端,FlutterWeb 提供了两种模式 来对齐 Engine 层的渲染能力:Canvaskit Render 和 HTML Render,下方表格对 两者的区别进行了对比: 图 3 模式对比 Canvaskit Render 模式:底层基于 Skia 的 WebAssembly 版本,而上层使 用 WebGL 进行渲染,因此 Canvaskit Render 模式 用于桌面应用)。 HTML Render 模式:利用 HTML + Canvas 对齐了 Engine 层的渲染能力,因此 兼容性表现优秀。另外,MTFlutterWeb 对滚动性能已有过探索和实践,目前能够 应对大部分业务场景。而关于加载性能,此模式下的初始包为 1.2M,是 Canvaskit Render 模式产物体积的 1/2,且我们可对编译流程进行干预,控制输出产物,因此0 码力 | 738 页 | 50.29 MB | 1 年前3 2019-2021 美团技术年货 前端篇(Web)的强大能力,实现逻辑的抽象,完成组 件、模块的适配,达到提效最大化; ● 跟进 Flutter 官方动向:Flutter 2.0 的发布,稳定了对 Web 的支持,同时默 认采用 Canvaskit 编译模式,此模式下对页面滚动性能有较大提升。但由于 canvaskit.wasm 文件过于庞大(2.5M),降低了加载性能,因此目前仍不建 议在 Web 侧直接使用 Canvaskit。不过官方承诺会在 2021 Widgets、 Gestures 等组件来实现逻辑跨端。而关于渲染跨端,FlutterWeb 提供了两种模式 来对齐 Engine 层的渲染能力:Canvaskit Render 和 HTML Render,下方表格对 两者的区别进行了对比: 图 3 模式对比 Canvaskit Render 模式:底层基于 Skia 的 WebAssembly 版本,而上层使 用 WebGL 进行渲染,因此 Canvaskit Render 模式 用于桌面应用)。 HTML Render 模式:利用 HTML + Canvas 对齐了 Engine 层的渲染能力,因此 兼容性表现优秀。另外,MTFlutterWeb 对滚动性能已有过探索和实践,目前能够 应对大部分业务场景。而关于加载性能,此模式下的初始包为 1.2M,是 Canvaskit Render 模式产物体积的 1/2,且我们可对编译流程进行干预,控制输出产物,因此0 码力 | 738 页 | 50.29 MB | 1 年前3
 Vue.js v3.0 教程(Vue3 教程)当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的 顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们 在每个索引位置正确渲染。 这个默认的模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的 列表渲染输出。 为了给 Vue 一个提示,以便它能跟踪每个节点 prevent="doThat"> 9. 10. 11. 12. 13. 14. 15....16. selected: '' 5. } 6. } 7. }).mount('#v-model-select') Note 如果 v-model 表达式的初始值未能匹配任何选项,0 码力 | 368 页 | 3.97 MB | 1 年前3 Vue.js v3.0 教程(Vue3 教程)当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的 顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们 在每个索引位置正确渲染。 这个默认的模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的 列表渲染输出。 为了给 Vue 一个提示,以便它能跟踪每个节点 prevent="doThat"> 9. 10. 11. 12. 13. 14. 15....16. selected: '' 5. } 6. } 7. }).mount('#v-model-select') Note 如果 v-model 表达式的初始值未能匹配任何选项,0 码力 | 368 页 | 3.97 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5













