ES6 Shim 技术文档
2024-12-24 01:02:22作者:咎竹峻Karen
安装指南
浏览器环境
- 在您的脚本之前引入
es6-shim。 - 如果您的浏览器不支持 ECMAScript 5,请特别引入
es5-shim。es5-shim应该在es6-shim之前加载。
Node.js/io.js 或 npm 管理的工作流
推荐使用以下命令安装:
npm install es6-shim
其他安装方式
- 使用
component(1):component install paulmillr/es6-shim - 使用
Bower:bower install es6-shim
项目使用说明
ES6 Shim 提供了兼容性垫片,使得旧版 JavaScript 引擎尽可能接近 ECMAScript 6 (Harmony) 的行为。它涵盖了 Map、Set、Promise 等 ES6 特性,并提供了许多字符串、数组、对象、数学函数等的增强功能。
示例代码
require('es6-shim');
var assert = require('assert');
assert.equal(true, 'abc'.startsWith('a'));
assert.equal(false, 'abc'.endsWith('a'));
assert.equal(true, 'john alice'.includes('john'));
assert.equal('123'.repeat(2), '123123');
assert.equal(false, NaN === NaN);
assert.equal(true, Object.is(NaN, NaN));
assert.equal(true, -0 === 0);
assert.equal(false, Object.is(-0, 0));
var result = Object.assign({ a: 1 }, { b: 2 });
assert.deepEqual(result, { a: 1, b: 2 });
assert.equal(true, isNaN('a'));
assert.equal(false, Number.isNaN('a'));
assert.equal(true, Number.isNaN(NaN));
assert.equal(true, isFinite('123'));
assert.equal(false, Number.isFinite('123'));
assert.equal(false, Number.isFinite(Infinity));
项目API使用文档
安全垫片
Map:需要 ES5 属性描述符支持。Set:需要 ES5 属性描述符支持。Promise:提供 Promise 支持。String:fromCodePoint()raw()
String.prototype:codePointAt()endsWith()includes()repeat()startsWith()
RegExp:new RegExp:当给定 RegExp 作为模式时,不再抛出错误。RegExp.prototype:flags[Symbol.match][Symbol.replace][Symbol.search][Symbol.split]toString
Number:- 二进制和八进制字面量
EPSILONMAX_SAFE_INTEGERMIN_SAFE_INTEGERisNaN()isInteger()isSafeInteger()isFinite()parseInt()parseFloat()
Array:from()of()
Array.prototype:copyWithin()entries()fill()find()findIndex()keys()values()indexOf()
Object:assign()is()keys()setPrototypeOf()
Function.prototype:name
Math:acosh()asinh()atanh()cbrt()clz32()cosh()expm1()fround()hypot()imul()log10()log1p()log2()sign()sinh()tanh()trunc()
Reflect:apply()construct()defineProperty()deleteProperty()get()getOwnPropertyDescriptor()getPrototypeOf()has()isExtensible()ownKeys()preventExtensions()set()setPrototypeOf()
子类化
Map、Set 和 Promise 实现是可子类化的。您可以使用以下模式在 ES5 中创建子类,并在 ES6 中继续工作:
require('es6-shim');
function MyPromise(exec) {
var promise = new Promise(exec);
Object.setPrototypeOf(promise, MyPromise.prototype);
// ...
return promise;
}
Object.setPrototypeOf(MyPromise, Promise);
MyPromise.prototype = Object.create(Promise.prototype, {
constructor: { value: MyPromise }
});
项目安装方式
浏览器环境
- 直接引入
es6-shim脚本。 - 如果需要,引入
es5-shim。
Node.js/io.js 或 npm 管理的工作流
npm install es6-shim
其他安装方式
- 使用
component(1):component install paulmillr/es6-shim - 使用
Bower:bower install es6-shim
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust075- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
690
4.46 K
Ascend Extension for PyTorch
Python
547
671
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
955
930
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
427
75
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
407
326
昇腾LLM分布式训练框架
Python
146
172
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
650
232
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.08 K
564
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.59 K
925
TorchAir 支持用户基于PyTorch框架和torch_npu插件在昇腾NPU上使用图模式进行推理。
Python
642
292