codecamp

微信小程序工具细节点

javascript && wxss


微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具。

三端的脚本执行环境聚以及用于渲染非原生组件的环境是各不相同的:

  • 在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中,是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10
  • 在 Android 上,小程序的 javascript 代码是通过 X5 JSCore来解析,是由 X5 基于 Mobile Chrome 37 内核来渲染的
  • 在 开发工具上, 小程序的 javascript 代码是运行在 nwjs 中,是由 Chrome Webview 来渲染的

尽管三端的环境是十分相似的,但是还是有些许区别:

  • ES6语法支持不一致,语法上开发者可以通过开启ES6ES5的功能来规避。详情

  • wxss渲染表现不一致,尽管可以通过开启样式补全来规避大部分的问题 详情,还是建议开发者需要在 iOS 和 Android 上检查小程序的真实表现。


客户端可信域名校验


开发者使用手机扫码调试的场景下,打开调试模式之后,最新版的客户端将不检查可信域名。


代码文件必须 UTF8 编码

iOS下仅支持 UTF8 编码格式,最新版本的开发者工具会在上传代码时候对代码文件做一次编码格式校验。

ES6 APi 支持情况

微信小程序已经支持了绝大部分的 ES6 API 具体表格如下:

  1. tip: TBS 3.0 是指微信小程序 Android 运行环境
  2. tipArray.values不支持
  3. tipProxy不支持
StringiOS8iOS9iOS10TBS3.0
codePointAt    
normalize    
includes    
startsWith    
endsWith    
repeat    
String.fromCodePoint    
ArrayiOS8iOS9iOS10TBS3.0
copyWithin    
find    
findIndex    
fill    
entries    
keys    
values  
includes    
Array.from    
Array.of    
NumberiOS8iOS9iOS10TBS3.0
isFinite    
isNaN    
parseInt    
parseFloat    
isInteger    
EPSILON    
isSafeInteger    
MathiOS8iOS9iOS10TBS3.0
trunc    
sign    
cbrt    
clz32    
imul    
fround    
hypot    
expm1    
log1p    
log10    
log2    
sinh    
cosh    
tanh    
asinh    
acosh    
atanh    
ObjectiOS8iOS9iOS10TBS3.0
is    
assign    
getOwnPropertyDescriptor    
keys    
getOwnPropertyNames    
getOwnPropertySymbols    
OtheriOS8iOS9iOS10 TBS3.0
Symbol     
Set     
Map     
Proxy  
Reflect     
Promise     

微信小程序工具 下载地址
微信小程序工具 beta版本下载
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }