微信小程序运行在三端:ios、android 和 用于调试的开发者工具。
三端的脚本执行环境聚以及用于渲染非原生组件的环境是各不相同的:
尽管三端的环境是十分相似的,但是还是有些许区别:
es6语法支持不一致,语法上开发者可以通过开启es6转es5的功能来规避。详情
wxss渲染表现不一致,尽管可以通过开启样式补全来规避大部分的问题 详情,还是建议开发者需要在 ios 和 android 上检查小程序的真实表现。
开发者使用手机扫码调试的场景下,打开调试模式之后,最新版的客户端将不检查可信域名。
ios下仅支持 utf8 编码格式,最新版本的开发者工具会在上传代码时候对代码文件做一次编码格式校验。
微信小程序已经支持了绝大部分的 es6 api 具体表格如下:
tip: tbs 3.0 是指微信小程序 android 运行环境tip: array.values不支持tip: proxy不支持| string | ios8 | ios9 | ios10 | tbs3.0 |
|---|---|---|---|---|
| codepointat | ||||
| normalize | ||||
| includes | ||||
| startswith | ||||
| endswith | ||||
| repeat | ||||
| string.fromcodepoint |
| array | ios8 | ios9 | ios10 | tbs3.0 |
|---|---|---|---|---|
| copywithin | ||||
| find | ||||
| findindex | ||||
| fill | ||||
| entries | ||||
| keys | ||||
| values | ✘ | ✘ | ||
| includes | ||||
| array.from | ||||
| array.of |
| number | ios8 | ios9 | ios10 | tbs3.0 |
|---|---|---|---|---|
| isfinite | ||||
| isnan | ||||
| parseint | ||||
| parsefloat | ||||
| isinteger | ||||
| epsilon | ||||
| issafeinteger |
| math | ios8 | ios9 | ios10 | tbs3.0 |
|---|---|---|---|---|
| trunc | ||||
| sign | ||||
| cbrt | ||||
| clz32 | ||||
| imul | ||||
| fround | ||||
| hypot | ||||
| expm1 | ||||
| log1p | ||||
| log10 | ||||
| log2 | ||||
| sinh | ||||
| cosh | ||||
| tanh | ||||
| asinh | ||||
| acosh | ||||
| atanh |
| object | ios8 | ios9 | ios10 | tbs3.0 |
|---|---|---|---|---|
| is | ||||
| assign | ||||
| getownpropertydescriptor | ||||
| keys | ||||
| getownpropertynames | ||||
| getownpropertysymbols |
| other | ios8 | ios9 | ios10 | tbs3.0 | |
|---|---|---|---|---|---|
| symbol | |||||
| set | |||||
| map | |||||
| proxy | ✘ | ✘ | ✘ | ||
| reflect | |||||
| promise |