JS 支持情况
安全限制
基于平台安全策略,抖音小游戏运行环境禁止以下动态代码执行行为:
- •禁止使用
eval()
函数执行代码 - •禁止通过
new Function()
构造函数动态创建函数 ECMAScript 标准支持
运行环境差异
Polyfill 解决方案
- 1.语法差异无法通过 Polyfill 解决
- 2.使用高级语法(如 async/await)时,需配合 代码编译工具 进行转译
兼容性注意事项
受限 API
以下特性在低版本运行环境中不可用:
- •
Proxy
对象(全版本不可用) Promise 执行时序
由于 iOS 15 及以下系统使用
setTimeout
模拟 Promise 实现: - 1.导致 Promise 回调变为宏任务(非标准微任务)
- 2.执行时序与标准规范存在差异
- 3.iOS 16+ 版本已修复此问题
// 时序验证示例 const stack = []; setTimeout(() => stack.push(6), 0); stack.push(1); new Promise(resolve => { stack.push(2); resolve(); }).then(() => stack.push(5)); stack.push(3); setTimeout(() => { // 标准环境输出:[1,2,3,5,6] // iOS15 环境输出:[1,2,3,6,5] console.log(stack); }, 1000);