亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于JS中數組長度的問題

關于JS中數組長度的問題

NodeOS 2016-03-17 23:17:27
給數組賦值 undefined后,數組length會增加,是不是說明第4行代碼和第6行返回undefined的原理不同?能否從語言邏輯方面解釋一下。(function(){ ????var?arr?=?[1,null]; ????alert("數組的長度是:"+arr.length); ????alert(arr[2]); ????arr.push(undefined); ????alert(arr[2]); ????alert("數組的長度是:"+arr.length); })();
查看完整描述

2 回答

已采納
?
xufeng123456

TA貢獻4條經驗 獲得超2個贊

直接點說,兩個 undefined 是完全一樣的。

可以用java里的思想去理解,undefined是一個對象(常量)。

第四行的undefined 是因為數組越界,js機制就給你返回一個這樣的 常量,

第六行返回的undefined 是你自己賦值的undefined。和js機制返回給你的常量是完全一樣的。

利用js可以驗證:?在末行加上 alert(arr[2]===undefined); 返回的true "==="是全等

查看完整回答
2 反對 回復 2016-03-19
  • NodeOS
    NodeOS
    用對象解釋就容易理解了,謝謝!
?
李曉健

TA貢獻1036條經驗 獲得超461個贊

第三行,彈出2,沒什么好說的

第4行,彈出undefined ,因為數組只有2個元素,你直接去取第三3個,也就是不存在,不存在的就是undefined

第6行,彈出undefined,因為你在第5行里給數組添加了一個元素,你給的是undefined,所以第三個元素就是undefined

第7行,彈出3,本來是2,你在第5行添加了一個,所以就是3了。

查看完整回答
反對 回復 2016-03-18
  • 2 回答
  • 0 關注
  • 2129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號