javascript - 數(shù)組原聲方法中的一段代碼
問題描述
var t = Object([1,2,3]);var len = t.length >>> 0;這段代碼什么意思?數(shù)組為什么要被轉(zhuǎn)換成對(duì)象 這個(gè)意思轉(zhuǎn)換成類數(shù)組的意思嗎
問題解答
回答1:Object([value])用法及功能:- 如果value為基元數(shù)據(jù)類型Boolean、Number、String,則返回對(duì)應(yīng)類型的對(duì)象,例如:Boolean對(duì)象、Number對(duì)象、String對(duì)象。- 如果value本身為對(duì)象,則不對(duì)其作任何更改,返回其本身。- 如果省略了value參數(shù),或value為null、undefined,則返回自身無任何屬性的Object對(duì)象。var t = Object([1,2,3]);console.log(t===[1,2,3]); // false上面的代碼中,value=[1,2,3],此時(shí)[1,2,3]并不是一個(gè)數(shù)組,因?yàn)樗葲]有new Array, 又沒有對(duì)象字面量賦值,并不算是一個(gè)array,而Object([1,2,3]) 可以將其轉(zhuǎn)化為數(shù)組對(duì)象,所以打印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因?yàn)閍 = [1,2,3]定義了一個(gè)字面量數(shù)組,而數(shù)組也是對(duì)象,所以匹配到了第二條,返回了它本身,所以此時(shí)a===t。t.length >>> 0; 上面的代碼中,把t.length這個(gè)值改為二進(jìn)制,然后像又移了0位,也是沒有任何意義的。可能是因?yàn)闆]有上下文,單純兩行代碼只能看出這么多了。回答2:
代碼應(yīng)該還有吧,不因該就這兩句吧?
相關(guān)文章:
1. android - NavigationView 的側(cè)滑菜單中如何保存新增項(xiàng)(通過程序添加)2. 這段代碼既不提示錯(cuò)誤也看不到結(jié)果,請(qǐng)老師明示錯(cuò)在哪里,謝謝!3. 老師 我是一個(gè)沒有學(xué)過php語(yǔ)言的準(zhǔn)畢業(yè)生 我希望您能幫我一下4. Thinkphp5.1報(bào)錯(cuò)不支持Redis5. php7.3.4中怎么開啟pdo驅(qū)動(dòng)6. ueditor上傳服務(wù)器提示后端配置項(xiàng)沒有正常加載,求助!?。。。?/a>7. 提示語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤: unexpected ’abstract’ (T_ABSTRACT)8. 關(guān)于thinkphp 5.1中,ajax提交數(shù)據(jù)url的格式寫法,加花括號(hào)就出錯(cuò),請(qǐng)老師指點(diǎn)9. tp5 不同控制器中的變量調(diào)用問題10. http://run.php.cn/在線PHP程序運(yùn)行結(jié)果不正確
