javascript - 數(shù)組原聲方法中的一段代碼
問題描述
var t = Object([1,2,3]);var len = t.length >>> 0;這段代碼什么意思?數(shù)組為什么要被轉(zhuǎn)換成對象 這個意思轉(zhuǎn)換成類數(shù)組的意思嗎
問題解答
回答1:Object([value])用法及功能:- 如果value為基元數(shù)據(jù)類型Boolean、Number、String,則返回對應(yīng)類型的對象,例如:Boolean對象、Number對象、String對象。- 如果value本身為對象,則不對其作任何更改,返回其本身。- 如果省略了value參數(shù),或value為null、undefined,則返回自身無任何屬性的Object對象。var t = Object([1,2,3]);console.log(t===[1,2,3]); // false上面的代碼中,value=[1,2,3],此時[1,2,3]并不是一個數(shù)組,因為它既沒有new Array, 又沒有對象字面量賦值,并不算是一個array,而Object([1,2,3]) 可以將其轉(zhuǎn)化為數(shù)組對象,所以打印t===[1,2,3]為false。?再看下面:var a = [1,2,3];var t = Object(a);console.log(a,typeof a, Array.isArray(a),t,typeof t, Array.isArray(t),t===a, t===[1,2,3]); // [1, 2, 3] 'object' true [1, 2, 3] 'object' true true false因為a = [1,2,3]定義了一個字面量數(shù)組,而數(shù)組也是對象,所以匹配到了第二條,返回了它本身,所以此時a===t。t.length >>> 0; 上面的代碼中,把t.length這個值改為二進(jìn)制,然后像又移了0位,也是沒有任何意義的。可能是因為沒有上下文,單純兩行代碼只能看出這么多了。回答2:
代碼應(yīng)該還有吧,不因該就這兩句吧?
相關(guān)文章:
1. angular.js - angularjs的自定義過濾器如何給文字加顏色?2. javascript - iframe 為什么加載網(wǎng)頁的時候滾動條這樣顯示?3. dockerfile - 為什么docker容器啟動不了?4. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下5. macos - mac下docker如何設(shè)置代理6. javascript - web網(wǎng)頁版app返回上一頁按鈕在ios設(shè)備失效怎么辦?安卓上可以,代碼如下,請大神幫助,萬分感謝。7. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?8. mysql - AttributeError: ’module’ object has no attribute ’MatchType’9. javascript - webapp業(yè)務(wù)流程基本一致,多套主題(樣式基本不一樣,交互稍有偏差)管理,并且有不斷有新增主題,該如何設(shè)計組件化架構(gòu)?10. javascript - es6中this
