javascript - 數組原聲方法中的一段代碼
問題描述
var t = Object([1,2,3]);var len = t.length >>> 0;這段代碼什么意思?數組為什么要被轉換成對象 這個意思轉換成類數組的意思嗎
問題解答
回答1:Object([value])用法及功能:- 如果value為基元數據類型Boolean、Number、String,則返回對應類型的對象,例如:Boolean對象、Number對象、String對象。- 如果value本身為對象,則不對其作任何更改,返回其本身。- 如果省略了value參數,或value為null、undefined,則返回自身無任何屬性的Object對象。var t = Object([1,2,3]);console.log(t===[1,2,3]); // false上面的代碼中,value=[1,2,3],此時[1,2,3]并不是一個數組,因為它既沒有new Array, 又沒有對象字面量賦值,并不算是一個array,而Object([1,2,3]) 可以將其轉化為數組對象,所以打印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]定義了一個字面量數組,而數組也是對象,所以匹配到了第二條,返回了它本身,所以此時a===t。t.length >>> 0; 上面的代碼中,把t.length這個值改為二進制,然后像又移了0位,也是沒有任何意義的。可能是因為沒有上下文,單純兩行代碼只能看出這么多了。回答2:
代碼應該還有吧,不因該就這兩句吧?
相關文章:
1. mysql 查詢身份證號字段值有效的數據2. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?3. 視頻文件不能播放,怎么辦?4. html5 - HTML代碼中的文字亂碼是怎么回事?5. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題6. visual-studio - Python OpenCV: 奇怪的自動補全問題7. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處8. javascript - 彈出一個子窗口,操作之后關閉,主窗口會得到相應的響應,例如網站的某些登錄界面,django后臺的管理等,這是怎么實現的呢?9. javascript - ios返回不執行js怎么解決?10. android - 分享到微信,如何快速轉換成字節數組
