You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Safari中performance.memory.jsHeapSizeLimit获取失败的解决方法求助

解决方案:Safari中获取performance.memory属性的兼容处理

你的代码在Safari中报错的原因是:performance.memory在Safari里本身就是undefined,直接访问undefined对象的jsHeapSizeLimit属性会触发"undefined is not an object"的错误,而非返回undefined。

修复方案1:逐层判断(兼容所有浏览器)

通过依次检查对象是否存在,避免访问不存在的属性:

(function () {
  var MAXmemoryAvailable = 0;
  // 依次检查performance、performance.memory是否存在,再读取目标属性
  if (typeof performance !== 'undefined' && performance.memory && typeof performance.memory.jsHeapSizeLimit !== 'undefined') {
    MAXmemoryAvailable = performance.memory.jsHeapSizeLimit;
  }
})();

修复方案2:使用可选链+空值合并(现代浏览器兼容)

如果你的项目不需要兼容Safari 14以下的版本,可以用ES2020引入的语法简化代码:

(function () {
  const MAXmemoryAvailable = performance?.memory?.jsHeapSizeLimit ?? 0;
})();
  • ?.(可选链操作符):链上任意属性不存在时,表达式直接返回undefined,不会报错
  • ??(空值合并操作符):当左边的值为undefined或null时,返回右边的默认值0

内容的提问来源于stack exchange,提问作者Andrea De Donatis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:04