uni-app js方法缺少

uni-app js方法缺少

示例代码:

'1'.toString().padStart(2,'0')

操作步骤:

'1'.toString().padStart(2,'0')

预期结果:

01

实际结果:

"1".toString(...).padStart is not a function

bug描述:

js 字符串缺少这个方法,实际浏览器有这个方法,封装成wap2app这个方法未定义

1 回复

更多关于uni-app js方法缺少的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是因为uni-app在编译到某些平台时,JavaScript运行环境可能不支持较新的ES6+ API。padStart是ES2017中新增的字符串方法,在较老版本的JavaScriptCore(如部分iOS WebView)或低版本浏览器中可能不可用。

解决方案:

  1. 使用条件判断兼容:
if (!String.prototype.padStart) {
  String.prototype.padStart = function(targetLength, padString) {
    targetLength = targetLength >> 0;
    padString = String(padString || ' ');
    if (this.length > targetLength) return String(this);
    targetLength = targetLength - this.length;
    if (targetLength > padString.length) {
      padString += padString.repeat(targetLength / padString.length);
    }
    return padString.slice(0, targetLength) + String(this);
  };
}
  1. 使用第三方工具库:
import { padStart } from 'lodash';
padStart('1', 2, '0'); // "01"
  1. 手动实现补零功能:
function padZero(num, length = 2) {
  return (Array(length).join('0') + num).slice(-length);
}
padZero('1'); // "01"
回到顶部