[英]How to make JS regex check for minimal number of letters and numbers/signs?
[英]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.