簡體   English   中英

如何對三等號運算符和 JS 中的承諾支持進行功能檢查?

[英]How to feature-check for three-equals-signs operator and promises support in JS?

我正在編寫我想分成幾個模塊的腳本。 “基線”模塊將支持較舊的瀏覽器,這些瀏覽器不支持 === 和 promises 等新語法。

如果瀏覽器通過功能檢查,將加載“高級”模塊。

我的問題是,如何檢查瀏覽器是否支持===運算符和.then(function(){})承諾語法而不實際使用它們,並在舊瀏覽器中導致語法錯誤?

if (/*what goes here*/) {
    var script = document.createElement('script');
    script.src = '/advanced.js';
    script.async = false;
    document.head.appendChild(script);
}

如果瀏覽器支持 promises,它將支持then 查看瀏覽器是否支持承諾(不拋出錯誤)的一種方法(除其他外)是查看window.Promise存在:

 if(window.hasOwnProperty("Promise")) { console.log("Promises are supported."); } else { console.log("This browser does NOT support promises."); }

至於=== ,我認為您不必擔心那個。 ===在 1999 年 12 月的第三版中被添加到 ECMAscript 中,很難想象今天有人(甚至是頑固的落后者)使用不支持它的瀏覽器。

更新:

如果你真的堅持檢測===支持,我的結論(來自我下面的評論)是通過研究哪些瀏覽器不支持===並使用瀏覽器檢測來檢測這些瀏覽器來實現這一點。 我希望其他人為您提供一種我沒有想到的更簡單的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM