文档中心 > 店铺动态卡片-开发指引

JavaScript 引擎

更新时间:2022/12/07 访问次数:2562

说明:本文档适用于小部件3.0。


一、运行引擎


小部件 JavaScript 引擎基于淘宝自研引擎,目前对其的标准 ES 2019。Android 和 iOS 同用一个 JavaScript 引擎,所以不存在不同系统的能力差异问题。

开发者需要避免使用 JavaScript 引擎不支持的内置对象。 如果必须使用,可自己提供内置对象的 polyfill(Polyfill :用于实现浏览器或其它 JavaScript 引擎不支持的原生 API 的代码 )。

注意:小部件引擎中禁止访问 globalThis、global ,因此无法直接使用 babel-polyfill。


二、内置对象支持情况


Object

iOS

Android

Object.is

支持

支持

Object.assign

支持

支持

Object.keys

支持

支持

Object.getOwnPropertyDescriptor

支持

支持

Object.getOwnPropertyNames

支持

支持

Object.getOwnPropertySymbols

支持

支持

String

iOS

Android

String.prototype.codePointAt

支持

支持

String.prototype.normalize

支持

支持

String.prototype.includes

支持

支持

String.prototype.startsWith

支持

支持

String.prototype.endsWith

支持

支持

String.prototype.repeat

支持

支持

String.fromCodePoint

支持

支持

Array

iOS

Android

Array.prototype.copyWithin

支持

支持

Array.prototype.find

支持

支持

Array.prototype.findIndex

支持

支持

Array.prototype.fill

支持

支持

Array.prototype.entries

支持

支持

Array.prototype.keys

支持

支持

Array.prototype.values

支持

支持

Array.prototype.includes

支持

支持

Array.from

支持

支持

Array.of

支持

支持

Number

iOS

Android

Number.isFinite

支持

支持

Number.isNaN

支持

支持

Number.parseInt

支持

支持

Number.parseFloat

支持

支持

Number.isInteger

支持

支持

Number.EPSILON

支持

支持

Number.isSafeInteger

支持

支持

Math

iOS

Android

Math.trunc

支持

支持

Math.sign

支持

支持

Math.cbrt

支持

支持

Math.clz32

支持

支持

Math.imul

支持

支持

Math.fround

支持

支持

Math.hypot

支持

支持

Math.expm1

支持

支持

Math.log1p

支持

支持

Math.log10

支持

支持

Math.log2

支持

支持

Math.sinh

支持

支持

Math.cosh

支持

支持

Math.tanh

支持

支持

Math.asinh

支持

支持

Math.acosh

支持

支持

Math.atanh

支持

支持

内置对象

iOS

Android

Set

支持

支持

Map

支持

支持

WeakMap

支持

支持

WeakSet

支持

支持

Symbol

支持

支持

Proxy

支持

支持

Reflect

支持

支持

Promise

支持

支持


三、对动态执行脚本的限制


出于安全考虑,小部件限制了部分 ES 的语法和 API :

1)不支持 eval 使用。

2)setTimeout 和 setInterval 函数仅支持函数做回调参数,不可动态执行代码。

3)不支持使用 new Function 创建函数。

FAQ

关于此文档暂时还没有FAQ
返回
顶部