整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript 中不需要 void 0

          JavaScript 中不需要 void 0

          是一個更好的選擇

          在 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 了:

          • 全局屬性 undefined 在 ES5 和更新的環境中無法更改
          • 使用 ESLint 規則 no-undefined 可以禁止名稱為 undefined 的局部變量
          • 在創建生產包時,縮小器可以用 void 0 替換 undefined

          相反,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

          <meta name="viewport" content="width=device-width, initial-scale=1.0" />

          content的屬性值:

          • width:控制 viewport 的大小,width=device-width代表寬度是設備屏幕的寬度
          • initial-scale=1.0:表示初始的縮放比例
          • minimum-scale=1.0:表示最小的縮放比例
          • maximum-scale=2.0:表示最大的縮放比例
          • user-scalable=yes:表示用戶是否可以調整縮放比例

          首先,不建議禁用縮放,比如下面的寫法:

          <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />

          這樣做會導致的問題:

          1. 實現圖片預覽的時候,無法雙指滑動進行放大、縮小,在體驗上超別扭;
          2. IOS端適配的問題(DPI)(沒有IOS,因此沒測試,可能是最初的iphone屏幕才會出現適配的問題吧)

          那么,應該怎樣使用呢?一般來說,只設置允許最小的比例是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

          利用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來實現。


          主站蜘蛛池模板: 无码人妻一区二区三区兔费| 国产一区二区三区小说| 亚州日本乱码一区二区三区| 伊人久久大香线蕉av一区| 夜夜嗨AV一区二区三区| 高清国产AV一区二区三区| 2020天堂中文字幕一区在线观| 亚洲一区二区影院| 无码一区二区三区爆白浆| 视频一区二区在线播放| 国模丽丽啪啪一区二区| 91video国产一区| 风间由美在线亚洲一区| 国产福利电影一区二区三区久久久久成人精品综合 | 波多野结衣的AV一区二区三区| 国产免费一区二区三区不卡 | 久久亚洲AV午夜福利精品一区| 国产福利一区二区三区在线观看 | 国产精品一区视频| 一区二区免费在线观看| 日韩一区二区在线观看视频 | 亚洲一区无码精品色| 久久4k岛国高清一区二区| 国产成人一区二区三区| 中文字幕无线码一区| 亚洲日韩AV无码一区二区三区人| 日本一区二区三区中文字幕| 91视频一区二区| 视频一区精品自拍| 无码视频免费一区二三区| 国产一区二区三区久久| 国产一区二区三区在线| 麻豆aⅴ精品无码一区二区| 国产一区二区三区露脸| 无码人妻AⅤ一区二区三区| 视频一区二区在线观看| 亚洲一区二区三区在线观看网站| 亚洲一区二区三区无码影院| 亚洲熟女乱色一区二区三区| 中文字幕人妻无码一区二区三区| 日本一区二区三区在线看 |