<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## js中的數組對象 **js中的一切均為對象數組本質上也是一種對象。** var a = 'b';var j = {"c":1};j.a = 2;j j的打印:Object {c: 1, a: 2} 怎么樣才能得到我們要的效果Object {c: 1, b: 2}呢? 分析: j.a = 2;是設置一個對象,js中.是訪問對象的符號 我們可以這樣: var a = 'b';var j = {"c":1};j[a] = 2;j j的打印:Object {c: 1, b: 2} 中括號是對象的訪問方式,但是上面說了一切都為對象,所以中括號也能訪問對象。通過用中括號的方式設置才會將a當做變量,才能達到我們的目的。 總結:js中.專門用來訪問對象的成員的,[]一般用來訪問數組的,但是數組本身也是一種對象,所以[]也可以用來訪問對象。。。 比如: var a = 's'; a.length // 1 a['length'] // 1 ### 擴展 > 方括號這種寫法,屬于“屬性名表達式”(參見[《對象的擴展》](https://es6.ruanyifeng.com/#docs/object#屬性名表達式)一章)。 有一種簡單的方法可以更簡單,處理上面的問題: ~~~javascript var a = 'b';var s = {a:1};s; Object {a: 1} var a = 'b';var s = {[a]:1};s; Object {b: 1} ~~~ js訪問不存在的對象不會報錯而是undefined,但是訪問不存在的對象元素的元素就會報錯: ~~~ > var a = {}; undefined > a.b; undefined > a.b.c VM196:2 Uncaught TypeError: Cannot read property 'c' of undefined(…) ~~~ 根據這個特性,所以有時候需要注意,在react中管理state時要經常注意這個問題,可以提前定義空數據數據,不然在數據返回前會報錯。 在store中定義: ~~~ data: { userInfo: { superiors: {}, }, userDingTalkInfo: {}, }, ~~~ 不然在render()中 ~~~ let data = t.state.userInfo; {data.nickname} 會報錯! ~~~ ---- ```javascript const func = new Function(); const obj = new Object(); func.__proto__ === Function.prototype; // true obj.__proto__ === Object.prototype; // true Function.prototype.__proto__ === Object.prototype; // true Object.prototype.__proto__ === null; // true ``` [為什么let Function = new Function() 這個等式不成立?? - 知乎](https://www.zhihu.com/question/481077850/answer/2072690405) ---- ### 擴展 上面說到 >[info] js訪問不存在的對象不會報錯而是undefined,但是訪問不存在的對象元素的元素就會報錯 那么再JS中處理這些就會很麻煩了,比如我要確定a.b是否存在我得先確定a存在,不能給直接判斷。 即使是: ```javascript if (a.b typeof == 'undefined'){} ``` 也會報錯 Uncaught ReferenceError: a is not defined(…) 而在PHP雖然直接使用未定義未聲明的變量也會有提示報錯,但是這種并不像JS這樣,所以這個PHP會方便一些。 ```php if (empty($result[1])) { echo "string"; } ``` 這樣間接訪問不在變量并不會報錯 * * * * * ### 注意的問題 js對象沒有length 屬性,所以判斷非空對象時要特別注意,參考:[javascript中怎么判斷對象{}為空](http://www.cnblogs.com/exhuasted/p/6098437.html) * * * * * ### 擴展 [JavaScript 創建對象的七種方式](https://mp.weixin.qq.com/s/F8UVqtkFQsxCDTZIroXWpg) * * * * * ### 申明與定義 `var`只是申明,未申明的變量直接使用會報錯'Uncaught ReferenceError: b is not defined',申明了的變量,未賦值,使用不會報錯,但是值為`undefined(未定義)`,所以未申明直接會報錯,報錯為“未定義”,申明后,使用不會報錯,但是值還是為“未定義”。 如果輸出對象不存在的屬性,不會報錯,但是值未“undefined 未定義”。 * * * * * update time : 2018-6-20 18:22:04
                  <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>

                              哎呀哎呀视频在线观看