Chrome Safari中的performance.memory.jsHeapSizeLimit错误

tjjdgumg  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(147)

我试图将performance.memory.jsHeapSizeLimit的值分配给一个变量,但由于Safari不支持它,因此当performance.memory.jsHeapSizeLimit不起作用时,我想将值0分配给同一个变量。
我在做这个:

(function () {
if (performance.memory.jsHeapSizeLimit !== undefined) {
var MAXmemoryAvailable = performance.memory.jsHeapSizeLimit; 
} else { 
var MAXmemoryAvailable = 0; }
})();

字符串
问题是,在Safari上它不工作,我有错误:undefined不是一个对象(正在评估“performance.memory. jsHeapSizeLimit”)
有什么办法吗?

hm2xizp9

hm2xizp91#

您可以通过添加?来使用optional chaining
可选的chaining(?.)操作符访问对象的属性或调用函数。如果使用此运算符访问的对象或调用的函数为undefined或null,则表达式将短路并计算为undefined,而不是抛出错误。
范例:

(function () {
    if (performance?.memory?.jsHeapSizeLimit !== undefined) {
        var MAXmemoryAvailable = performance.memory.jsHeapSizeLimit; 
    } else { 
        var MAXmemoryAvailable = 0;
    }

    console.log(MAXmemoryAvailable);
})();

字符串
Firefox不支持performance.memory(因此也不支持performance.memory.jsHeapSizeLimit),它显示0

相关问题