是一個更好的選擇
在 JavaScript 代碼中,尤其是在較舊的遺留代碼中,您有時會發現表達式 void 0。
void 運算符計算表達式并返回未定義的原始值。 void 0 計算 0,它什么都不做,然后返回 undefined。 它實際上是未定義的別名。
為什么 void 0 用作 undefined 的別名?
JavaScript 的一個怪癖是 undefined 不是保留關鍵字。
相反,它是全局對象的屬性。
在 ES5 (2009) 之前,可以修改未定義的全局屬性,這可能導致未定義的意外行為。
考慮以下示例(在現代 JavaScript 引擎中不起作用):
// Pre-ES5 example - does not work in modern JS engines:// changes property 'undefined' on the global object:
undefined="something else"; // potentially in some other JavaScript file or script section:
if (aVariable===undefined) {
// aVariable is equal to "something else",
// but not to the primitive value 'undefined'
doSomething();
}
修改未定義的全局甚至可能發生在第 3 方代碼中,例如通過腳本標簽導入的庫。 由于 void 0 總是返回未定義的實際原始值,因此在 ES5 之前通常使用它來使代碼對未定義的全局屬性的重新定義進行故障保護。
ES5 之后的全局屬性‘undefined’
undefined 可以在全局對象上修改的問題非常大,以至于 JavaScript 標準被改變了。
在 ES5 中,全局屬性 undefined 變成了只讀的。
嘗試更改值在現代 JavaScript 中沒有任何作用:
globalThis.undefined="something else";
console.log(undefined); // prints undefined in modern browsers
未定義仍然可以被局部變量遮蔽
但是,雖然不再可能更改 undefined 全局屬性,但 undefined 仍然不是 JavaScript 中的保留關鍵字。 因此它仍然可以被局部變量遮蔽:
const undefined="something else";
let check=aVariable===void 0; // void 0 is needed here
有一個名稱為 undefined 的局部變量是您要避免的陷阱。 ESLint 規則 no-undefined 不允許使用 undefined 作為變量名并防止出現陰影問題。
void 0 可以幫助減小捆綁包的大小嗎?
表達式 void 0 比 undefined 短。 JavaScript 包大小對于創建快速加載的網站至關重要,減少幾個字節會有所幫助。
但是,最好將基本的代碼大小優化留給諸如 Terser 之類的壓縮程序,作為產品捆綁過程的一部分。 它們可以執行許多不同的優化,并且源代碼仍然更具可讀性,無需任何手動代碼大小優化,例如使用 void 0 而不是 undefined。
在現代 JavaScript 中避免使用 void 0
總而言之,在現代瀏覽器和 JavaScript 引擎中,沒有理由再使用 void 0 了:
相反,void 0 使 JavaSCript 代碼更難閱讀和理解,因為您需要知道 void 0 的含義,并為同一概念 (undefined) 處理不同的術語 (void 0, undefined)。
您可以使用 undefined 并刪除不必要的 void 0 并發癥。
因為傳統的圖像拉伸插值放大,會讓圖片會變得模糊有鋸齒,而SuperImage是一個基于人工智能的圖片放大工具,它借助了“深度學習”技術,智能地將噪點和鋸齒部分進行補充,以此實現對動漫卡通、插畫和照片進行圖片高清無損放大,而且放大后的圖片不失真…
SuperImage的放大效果比 PhotoZoom / PhotoShop 等效果好太多了,支持 3000x3000px,最高 16 倍放大,而且還可以無需聯網本地化放大,完全可以放心使用!
SuperImage是一款本地化工具,無需聯網,全程都在本地運行,無需擔心圖片信息泄漏等問題。
軟件依舊為綠色版,無需安裝,解壓后雙擊即可使用!
直接把需要做放大處理的圖片拖進軟件中,就能完成添加操作。
要做的就是選擇下放大的倍率和輸出的圖片格式,最后點下畫質增強,就能對圖片進行處理。在模式中,軟件提供了x4(generic)、x16(generic)和x16(drawing)三種模型,前兩種為通用模式,后者為繪畫模式,而輸出的格式則為PNG和JPG兩種主流格式,大家可以根據自己的實際情況來選擇。
軟件就會對圖片進行處理。由于這款軟件最早是針對安卓手機開發的,所以對電腦配置的要求相對低一點,魔改到電腦上來用,即便是核顯也能輕松應對。
看下這張經典的nice老人表情包處理前后的變化,整個圖片清晰度得到了質的飛躍,頭發、胡子再到面部皮膚的清晰度都變得嘎嘎清晰,甚至部分紋理字節都還原了出來。
同樣可以輕松拿捏!效果甚至媲美原始出處,且很多細節都得到了一定的還原~
各種小姐姐美圖自然也是不在話下,看這效果,還有誰!放大圖片仔細觀察,遠處的鐵塔、汽車等較小物體的處理效果同樣非常給力。
實話說,軟件對于一些圖片的處理上還是存在瑕疵,并非絕對完美,但對一個體積200多兆,且無需聯網的工具而言是不可多得的好工具,在很多時候,通過”無損放大圖片“來獲得不失真更清晰的大圖,可以讓你的素材得到更有效地利用。
下載鏈接:https://www.123pan.com/s/lbltjv-Y7z4h.html
iewport:設備顯示網頁的那部分區域,在移動端的開發起著至關重要的作用。
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
content的屬性值:
首先,不建議禁用縮放,比如下面的寫法:
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
這樣做會導致的問題:
那么,應該怎樣使用呢?一般來說,只設置允許最小的比例是1.0就足夠了,具體寫法:
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0" />
//或
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.5" />
利用css的@viewport做適配,但真正做設備適配的代碼,不只用到這一個屬性。
@viewport可以設置寬度、高度、縮放系數、文檔方向等,參考文檔:https://developer.mozilla.org/zh-CN/docs/Web/CSS/@viewport
代碼兼容:
@-webkit-viewport {
width: device-width;
}
@-moz-viewport {
width: device-width;
}
@-ms-viewport {
width: device-width;
}
@-o-viewport {
width: device-width;
}
@viewport {
width: device-width;
}
不過,將設備的width設置為device-width,依然建議通過meta來實現。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。