摘要:原始數(shù)據(jù)類型引用數(shù)據(jù)類型兩者的區(qū)別值存儲方式不同原始數(shù)據(jù)類型將變量名和值都存儲在棧內(nèi)存中引用數(shù)據(jù)類型將變量名存儲在棧內(nèi)存中,將值存儲在堆內(nèi)存中,并在棧內(nèi)存中存儲值的地址,該地址指向堆內(nèi)存中的值。
類型
1.js中有哪些數(shù)據(jù)類型,并解釋清楚原始數(shù)據(jù)類型和引用數(shù)據(jù)類型
js中共有null,undefined, string,number,boolean,object六種數(shù)據(jù)類型。
原始數(shù)據(jù)類型: null,undefined, string,number,boolean
引用數(shù)據(jù)類型:object
兩者的區(qū)別:
1)值存儲方式不同:
原始數(shù)據(jù)類型:將變量名和值都存儲在棧內(nèi)存中
引用數(shù)據(jù)類型:將變量名存儲在棧內(nèi)存中,將值存儲在堆內(nèi)存中,并在棧內(nèi)存中存儲值的地址,該地址指向堆內(nèi)存中的值。
2)賦值方式不同:
當(dāng)給b賦予另一個a的值
若a值為原始數(shù)據(jù)類型,直接在棧內(nèi)存中生成b值,兩個變量以后進行值改變不會相互影響
若a值為引用數(shù)據(jù)類型,賦予b變量的是值地址,通過這個地址,兩者指向的其實是堆內(nèi)存中的同一個值,所以以后a,b任一變量對值進行改變,會直接影響另一個變量的值
2. 解釋清楚 null 和 undefined
null表示一個標識被賦值了,且該標識賦值為“空值”,從邏輯角度來看,null值表示空對象指針;
undefined表示聲明了標識,但沒有給標識賦值。
3. 如何復(fù)制一個對象的值?
function cloneObject(object){ var newObject = new Object(); for(var i in object){ newObject[i] = object[i]; } return newObject; }
4. js在什么時候會進行隱式類型轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果?
數(shù)值運算
if
.調(diào)用方法或?qū)傩?/p>
!和!!
5. 類型識別的方法?
typeof a
可以判別標準類型,除了null之外
typeof 1 返回結(jié)果:"number" typeof {} 返回結(jié)果:"object"
不能判別具體的對象類型,除了function之外
typeof [1] 返回結(jié)果:"object" typeof function(){} 返回結(jié)果:"function"
a instanceof b
可以判別內(nèi)置對象類型
[] instanceof Array 返回結(jié)果:true new String() instanceof String 返回結(jié)果:true
不能判別原始類型值
"a" instanceof String 返回結(jié)果:false
可以判別自定義對象類型
function Point(x,y){ this.x = x; this.y = y } var c = new Point(1,2) c instanceof Point
返回結(jié)果:true
a.constructor
可以判別標準數(shù)據(jù)類型(undefined和null除外)
"123".constructor == String 返回結(jié)果:true
可以判別具體的內(nèi)置對象類型
[1,2].constructor == Array 返回結(jié)果:true
可以判別自定義對象類型
function Point(x,y){ this.x = x; this.y = y } var c = new Point(1,2) c.constructor == Point
返回結(jié)果:true
Object.prototype.toString.call(a)
可以判別標準數(shù)據(jù)類型
Object.prototype.toString.call(1)返回結(jié)果:"[object Number]" Object.prototype.toString.call(undefined) 返回結(jié)果:"[object Undefined]"
可以判別內(nèi)置對象類型
Object.prototype.toString.call([a]) 返回結(jié)果:"[object Array]"
不能判別自定義對象類型
function Point(x,y){ this.x = x; this.y = y } var c = new Point(1,2) Object.prototype.toString.call(c)
返回結(jié)果:"[object Object]"
工作中可以寫一個函數(shù)方便判定
function type(obj){ return Object.prototype.toString.call(obj).slice(8,-1) }
type("a") 返回結(jié)果: "String" type([a]) 返回結(jié)果: "Array"
函數(shù)1. 函數(shù)里的this什么含義,什么情況下,怎么用?
誰調(diào)用的方法或者屬性,this就指向誰
如果沒有被誰調(diào)用,this指向window
2. bind,call,apply方法的使用,什么區(qū)別?什么時候用?
3. 函數(shù)curry化
函數(shù)curry化是什么意思?
把接受多個參數(shù)的函數(shù)轉(zhuǎn)換為接受單一參數(shù)的函數(shù),且函數(shù)可以持續(xù)接收參數(shù)
將一個復(fù)雜的問題片段化,使之進行簡化
3. 數(shù)組和對象有哪些原生方法,列舉一下,分別是什么含義,比如鏈接兩個數(shù)組用哪個方法,刪除數(shù)組的指定項。
原型1. 講一下 prototype 是什么東西,原型鏈的理解,什么時候用 prototype?
proto
構(gòu)造函數(shù)
閉包1.什么是閉包?
2.閉包的作用和使用場景
閉包的作用一:隱藏、封裝
閉包的作用二:記憶函數(shù)
1.講解原生Js實現(xiàn)ajax的原理。
Ajax 的全稱是Asynchronous JavaScript and XML,其中,Asynchronous 是異步的意思,它有別于傳統(tǒng)web開發(fā)中采用的同步的方式。
Ajax的原理簡單來說通過XmlHttpRequest對象來向服務(wù)器發(fā)異步請求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面。
XMLHttpRequest是ajax的核心機制,它是在IE5中首先引入的,是一種支持異步請求的技術(shù)。簡單的說,也就是javascript可以及時向服務(wù)器提出請求和處理響應(yīng),而不阻塞用戶。達到無刷新的效果。
XMLHttpRequest這個對象的屬性有:
onreadystatechange 每次狀態(tài)改變所觸發(fā)事件的事件處理程序。
responseText 從服務(wù)器進程返回數(shù)據(jù)的字符串形式。
responseXML 從服務(wù)器進程返回的DOM兼容的文檔數(shù)據(jù)對象。
status 從服務(wù)器返回的數(shù)字代碼,比如常見的404(未找到)和200(已就緒)
status Text 伴隨狀態(tài)碼的字符串信息
readyState 對象狀態(tài)值
0 (未初始化) 對象已建立,但是尚未初始化(尚未調(diào)用open方法)
1 (初始化) 對象已建立,尚未調(diào)用send方法
2 (發(fā)送數(shù)據(jù)) send方法已調(diào)用,但是當(dāng)前的狀態(tài)及http頭未知
3 (數(shù)據(jù)傳送中) 已接收部分數(shù)據(jù),因為響應(yīng)及http頭不全,這時通過responseBody和responseText獲取部分數(shù)據(jù)會出現(xiàn)錯誤,
4 (完成) 數(shù)據(jù)接收完畢,此時可以通過通過responseXml和responseText獲取完整的回應(yīng)數(shù)據(jù)
正則表達式 Coding QuestionsQuestion: How would you make this work?
add(2, 5); // 7 add(2)(5); // 7
function addto(){ var length = arguments.length; var sum = 0; for(var i = 0;iMake this work: duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
function duplicate(arr){ var length = arr.length; for(var i=0;i3.如何獲取一個大于等于0且小于等于9的隨機整數(shù)?.
function randomNum(){ return Math.floor(Math.random()*10) }4.想要去除一個字符串的第一個字符,有哪些方法可以實現(xiàn).
str.slice(1) str.substr(1) str.substring(1) str.replace(/./,"") str.replace(str.charAt(0),"")5.對一個數(shù)組(每項都是數(shù)值)求和,有哪些方法?
6.If you have var y = 1, x = y = typeof x; What is the value of x?
Answer: "undefined"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/79448.html
摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項目地址 https:...
摘要:中使用操作符具體做了哪些事情創(chuàng)建了一個空對象空對象的屬性指向構(gòu)造函數(shù)的屬性執(zhí)行構(gòu)造函數(shù),將的指向前端面試題及答案瀏覽器篇前端面試題及答案篇前端面試題及答案篇前端面試題及答案性能優(yōu)化篇 這篇文章并不是最全的前端面試題(沒有最全,只有更全),只是針對自己面試過程中遇到的一些難題、容易忽略的題做一個簡單的筆記,方便后面有面試需要的小伙伴們借鑒,后續(xù)內(nèi)容會不定時更新,有錯誤之處希望大家不吝指出...
摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...
摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進而查漏補缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
閱讀 1008·2021-09-30 09:58
閱讀 2836·2021-09-09 11:55
閱讀 2004·2021-09-01 11:41
閱讀 995·2019-08-30 15:55
閱讀 3355·2019-08-30 12:50
閱讀 3499·2019-08-29 18:37
閱讀 3297·2019-08-29 16:37
閱讀 2017·2019-08-29 13:00