昨天写了个代码,一调试就出错,代码如下↓
/*!
* Time JavaScript Library v1.2.5
* Author: Chi Zeyu
* Time:2023-04-12T15:11Z
*/
;(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.time = factory();
}(this, (function(config) {
if (typeof config === "object") {
if (config.type == "time") { //time
function formatDate(n) {
date = new Date()
const r = new Date(date);
var table = { // create timetable
'M+': r.getMonth() + 1, // months
'd+': r.getDate(), // dates
'h+': r.getHours(), // hours
'm+': r.getMinutes(), // minutes
's+': r.getSeconds(), // seconds
'S+': r.getMilliseconds() //Miliseconds
};
if (/(y+)/.test(n)) { //regex
n = format.replace(RegExp.$1, (r.getFullYear() + '')
.substr(4 - RegExp.$1.length));
}
for (var str in table) {
if (new RegExp('(' + str + ')')
.test(n)) {
n = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (table[str]) : (('00' + table[str])
.substr(('' + table[str])
.length))); //replace
}
}
return n;
}
return formatDate(config.format)
} else if (config.type == "timestamp") { //timestamp
return new Date()
.getTime();
}
} else {
throw new Error("Param 'config' is not an object"); //error
}
})));
一直报错,怎么办?
求修改,在 线 等,很着急!
基于Monster 组和GPT的调写:
/*!
* Time JavaScript Library v1.2.5
* Author: Chi Zeyu
* Time:2023-04-12T15:11Z
*/
;(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.time = factory();
}(this, (function(config) {
if (typeof config === "object") {
if (config.type == "time") { //time
function formatDate(n) {
var date = new Date();
const r = new Date(date);
var table = { // create timetable
'M+': r.getMonth() + 1, // months
'd+': r.getDate(), // dates
'h+': r.getHours(), // hours
'm+': r.getMinutes(), // minutes
's+': r.getSeconds(), // seconds
'S+': r.getMilliseconds() //Miliseconds
};
if (/(y+)/.test(n)) { //regex
n = n.replace(RegExp.$1, (r.getFullYear() + '')
.substr(4 - RegExp.$1.length));
}
for (var str in table) {
if (new RegExp('(' + str + ')')
.test(n)) {
n = n.replace(RegExp.$1, (RegExp.$1.length === 1) ? (table[str]) : (('00' + table[str])
.substr(('' + table[str])
.length))); //replace
}
}
return n;
}
return formatDate(config.format)
} else if (config.type == "timestamp") { //timestamp
return new Date()
.getTime();
}
} else {
throw new Error("Param 'config' is not an object"); //error
}
})));
WXML编译:
WebView无法直接理解WXML标签,所以需要经过编译。
微信开发者工具内置了一个二进制的WXML编译器,这个编译器接受WXML代码文件列表,处理完成之后输出JavaScript代码,这段代码是各个页面的结构生成函数。
编译过程将所有的WXML代码最终变成一个JavaScript 函数,预先注入在WebView中。在运行时确定了页面路径之后,将路径作为参数传递给这个函数得到该页面的结构生成函数,页面结构生成函数接受页面数据,输出一段描述页面结构的JSON,最终通过小程序组件系统生成对应的HTML。
WXSS 编译
与 CSS 相比,WXSS 扩展的一些特性,包括rpx尺寸单位和样式导入语法,这些特性都是WebView无法直接理解的。
微信开发者工具内置了一个二进制的WXSS编译器,这个编译器接受WXSS文件列表,分析文件之间的引用关系,同时预处理rpx,输出一个样式信息数组,如图10-4,每个WXSS文件对应于这个数组中的一项。
在运行时,根据当前的屏幕宽度,计算出1rpx对应多少像素单位,然后将样式信息数组转换成最终的样式添加到页面中。
JavaScript编译
微信客户端在运行小程序的逻辑层的时候只需要加载一个JS文件(我们称为app-service.js),而小程序框架允许开发者将 JavaScript 代码写在不同的文件中,所以在代码上传之前,微信开发者工具会对开发者的JS 文件做一些预处理,包括ES6转ES5和代码压缩(开发者可以选择关闭预处理操作),在服务器编译过程将每个JS文件的内容分别包裹在define域中,再按一定的顺序合并成 app-service.js 。其中对于页面JS和app.js需要主动require。