<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] >[success] # 工具類型小方法 ~~~ 1.本章節代碼通過整理30s 項目中數組篇章知識點,對涉及對象一些工具小方法記錄 ~~~ >[info] ## 是否為空對象 ~~~ 1.檢查值是否為空對象/集合,沒有可枚舉的屬性或任何不視為集合的類型就認為是空 ~~~ [is-empty](https://www.30secondsofcode.org/js/s/is-empty) >[danger] ##### 30s ~~~ 1.'Object.keys' 僅僅是對象自己的屬性,非原型鏈上的,并且也需要是可枚舉類型 2.但是這種過于簡單對 數字類型 和 布爾類型Object.keys 返回的是空數組,導致返回的是true 認為他們是空對象 log(Object.keys(123)) // [] ~~~ ~~~ const isEmpty = val => val == null || !(Object.keys(val) || val).length; 例子 isEmpty([]); // true isEmpty({}); // true isEmpty(''); // true isEmpty([1, 2]); // false isEmpty({ a: 1, b: 2 }); // false isEmpty('text'); // false isEmpty(123); // true - type is not considered a collection isEmpty(true); // true - type is not considered a collectionconst ~~~ >[info] ## 檢測傳遞值是否為對象 ~~~ 1.檢測傳遞值是否為對象 ~~~ >[danger] ##### 30s ~~~ 1.當以非構造函數形式被調用時,Object 的行為等同于 new Object()。 1.1.如果給定值是 null 或 undefined,將會創建并返回一個空對象 1.2.如果傳進去的是一個基本類型的值,則會構造其包裝類型的對象 1.3.如果傳進去的是引用類型的值,仍然會返回這個值,經他們復制的變量保有和源對象相同的引用地址 2.下面代碼利用的就是1.3條如果是對象被Object 包裹后還是對象自己,這樣進行比較便可知道傳遞的值是否 為對象 3.現在這個工具方法如果你傳入的 null 或 undefined或者是function 我們都可以認為他是對象 ~~~ [is-object](https://www.30secondsofcode.org/js/s/is-object) * 如圖解釋1.2 ![](https://img.kancloud.cn/79/86/79869c88c6adb27769ede10035f873c7_416x137.png) ~~~ const isObject = obj => obj === Object(obj); 例子 isObject([1, 2, 3, 4]); // true isObject([]); // true isObject(['Hello!']); // true isObject({ a: 1 }); // true isObject({}); // true isObject(true); // false log(isObject(x=>x)) // true ~~~ >[info] ## 使用 typeOf 檢測傳入值是否為對象 ~~~ 1.現在如果你傳入的 null 或 undefined或者是function 不認為他是對象 ~~~ [is-object-like](https://www.30secondsofcode.org/js/s/is-object-like) >[danger] ##### 30s ~~~ 1.使用typeof 注意因為 null 的typeof 是對象類型,因此下面方法給排除 ~~~ ~~~ const log = console.log const isObjectLike = val => val !== null && typeof val === 'object'; isObjectLike({}); // true isObjectLike([1, 2, 3]); // true isObjectLike(x => x); // false isObjectLike(null); // false log(isObjectLike(undefined)) // false ~~~ >[info] ## 對象淺copy [shallow-clone](https://www.30secondsofcode.org/js/s/shallow-clone) ~~~ const shallowClone = obj => Object.assign({}, obj); 例子 const a = { x: true, y: 1 }; const b = shallowClone(a); // a !== b ~~~ >[info] ## 判斷一個對象是否用Object構造 ~~~ 1.判斷一個對象是否從Object 創建的 ~~~ >[danger] ##### 30s ~~~ 1.一個知識點使用對象的'constructor' 屬性看他的構造函數是否是和創建的構造函數是一個 這里要看是否是來自Object 因此和Object 做比較 ~~~ ~~~ const log = console.log class User{ name = 'w' } const user = new User() const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object; log(isPlainObject(user)) // false user 是來自User isPlainObject({ a: 1 }); // true ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看