每日一點前端面試題

每日單詞

info:信息 largest:最大的
invalid:無效的 indicate:表示
incorrect:不正確的 conventional:常規(guī)的
topic:主題 has been:已經(jīng)

JavaScript中的數(shù)據(jù)類型有哪些固蛾?

  • number:數(shù)字结执;
  • boolean:布爾;
  • string:字符串艾凯;
  • Object:對象献幔;
  • null:空;
  • undefined:未定義趾诗;
  • symbol:獨一無二的值

如何判斷某變量是否為數(shù)組變量?

  1. instanceof

instanceof 方法主要是檢測 變量的constructor 是否與 Array相等蜡感,也就是檢測的變量的原型鏈?zhǔn)欠裰赶駻rray構(gòu)造函數(shù)的prototype原型上。
例:
var arr = [4,67,23];
console.log(arr instanceof Array) //true
補充:但是instanceof不一定能保證檢測的結(jié)果一定正確恃泪,例如index頁面?zhèn)魅胍粋€arr變量給iframe去處理郑兴,則即使arr instanceof Array還是返回false,因為兩個引用的Array類型不是同一個悟泵。并且constructor可以重寫所以不能確保萬無一失杈笔。

  1. constructor 同上

     例:
       var arr = [];
       arr.constructor === Array  ruturn true 
    

因為constructor可以被重寫,所以不能確保一定是數(shù)組
例:
var str = 'abc';
str.constructor = Array;
str.constructor === Array // return true
//而很明顯str不是數(shù)組

  1. Array.isArray()

ES5 在Array上新增了檢測數(shù)組的方法糕非,因為是新的方法蒙具,瀏覽器有一定的兼容問題

終極方法,可以確保方法能檢測一定是數(shù)組

  1. Object.prototype.toString.call()

     例:
       var arr = [34,65,1];
       Object.prototype.toString.call(arr) === '[object Array]' //return true
    

總結(jié):
由于Array.isArray()是封裝在瀏覽器中,運行效率比較高朽肥,所以當(dāng)真正需要檢測一個變量類型時禁筏,先會檢測瀏覽器是否支持Array.isArray(), 之后在用Obejct.prototype.toString()方法:
所以周全的封裝的代碼如下:

var arr = [1,3]; 
function isArray(value){  
    if (typeof Array.isArray === "function") {  
        return Array.isArray(value);      
    }else{  
        return Object.prototype.toString.call(value) === "[object Array]";      
    }  
}  
alert(isArrayFn(arr));// true   

JavaScript中什么是偽數(shù)組,如何將偽數(shù)組轉(zhuǎn)化為真正的數(shù)組衡招?

偽數(shù)組:
1.具有l(wèi)ength屬性
2.按索引方式存儲數(shù)據(jù)
3.不具有數(shù)組的push,pop等方法


轉(zhuǎn)化
1.可以使用Array.prototype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對象篱昔。
2.ES6中Array.from方法用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like object)和可遍歷(iterable)的對象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末始腾,一起剝皮案震驚了整個濱河市州刽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浪箭,老刑警劉巖穗椅,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奶栖,居然都是意外死亡匹表,警方通過查閱死者的電腦和手機门坷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袍镀,“玉大人默蚌,你說我怎么就攤上這事∥郏” “怎么了绸吸?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宣虾。 經(jīng)常有香客問我惯裕,道長,這世上最難降的妖魔是什么绣硝? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任蜻势,我火速辦了婚禮,結(jié)果婚禮上鹉胖,老公的妹妹穿的比我還像新娘握玛。我一直安慰自己,他們只是感情好甫菠,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布挠铲。 她就那樣靜靜地躺著,像睡著了一般寂诱。 火紅的嫁衣襯著肌膚如雪拂苹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天痰洒,我揣著相機與錄音瓢棒,去河邊找鬼。 笑死丘喻,一個胖子當(dāng)著我的面吹牛脯宿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泉粉,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼连霉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嗡靡?” 一聲冷哼從身側(cè)響起跺撼,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讨彼,沒想到半個月后财边,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡点骑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年酣难,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黑滴。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡憨募,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袁辈,到底是詐尸還是另有隱情菜谣,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布晚缩,位于F島的核電站尾膊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荞彼。R本人自食惡果不足惜冈敛,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸣皂。 院中可真熱鬧抓谴,春花似錦、人聲如沸寞缝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荆陆。三九已至滩届,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間被啼,已是汗流浹背帜消。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趟据,地道東北人券犁。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像汹碱,于是被迫代替她去往敵國和親粘衬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容