之前的作業:
提示: 在開發的時候盡量在函式內部將作用都給呼叫好,在外部就能夠直接使用


鏈式呼叫:
正常這樣是不行的,因為沒有具體回傳值:

return 具體的物件,這樣的才是鏈式操作,jquery基本原理也是這樣的,但是比這個中間穿插了很多的操作

使用中括號的形式去能夠動態的得到建構式的屬性:

使用中括號的形式,有點像php

最早的js引擎是沒有點語法的,都是obj[‘name’]

后來有點語法的時候,進行了一個處理,
objk.name ->obj['name'],
大部分瀏覽器都是這樣進行處理的,v8引擎不一定,因為v8是轉化成機器碼

物件列舉:一組有共同特征的物件稱之為列舉
提到列舉必然會想到遍歷
遍歷:遍歷是按順序一個一個去獲取一組資訊,在一組資訊內,一個一個的去獲取其資訊的程序
在js中有遍歷就會有列舉
for in 列印物件:
為什么無法列印car.key的問題:
因為car.key在js引擎內部會轉化成,car['key']

所以要去列印car的key要這樣car[key],
是這樣的去遍歷物件的

for in 列印陣列:

hasOwnProperty()方法:
你構造出來的物件在原型鏈上面只要是你自己設定的都能列印出來:

如果你不想要去列印原型鏈上自己定義的屬性,那么這個hasOwnPropety()就有作用了:
hasOwnPropety這個方法回傳值是一個boolean值,能夠區分是否是該構造物件本身的屬性:作用為排除你自定義的原型上的屬性

‘displacement' in car的隱式轉化,具體如下圖

hasOwnProperty是排除自定義原型的屬性和方法的,
但是in是不排除原型的屬性和方法的

instanceof (無比重要,大公司面試必出):
A instanceof Car
主要是針對A物件里面的原型和B物件的原型鏈上是否有重合的都會列印true;



用來判斷后端回傳給我的是什么型別:

進行簡化:

函式內部this指向問題:
在普通的函式中,使用的this在沒有實體化函式的時候是指向window的,
如果實體化函式這里this就指向實體化函式

關于實體化物件的this問題:


call和apply的使用引數的問題:
什么時候需要傳值:
如果借用的物件需要引數那么我們必須要給一個形參寫在apply中

this:

callee和caller的方法:
對于形參的arguments.callee就是該方法,那么就會有arguments.callee.length方法

arguments.callee.length放回的是形參串列對于的長度,arguments.length表示的是實參實際的長度:

argument.callee在那個函式里面就代表哪個函式:

遞回的另一種寫法:
正常遞回

使用arguments.callee來進行遞回:

總結:
argument.callee(實參串列的一個屬性)遞回:
使用場景: 加載的是時候就給 某個值賦值,如通過ajax獲取之后通過一系列的處理,希望一出來就處理好,然后馬上賦值給變數

caller:呼叫函式的函式參考(在實際開發是沒有什么用處的,在嚴格模式下還會報錯,但是面試題可能會出):
在使用test1的時候呼叫了test2,test2.caller表示的就是test1這個函式(回傳當前被呼叫的函式參考)

下面都是面試題:
第一道阿里的筆試題:

2.
JS的typeof可能回傳的值有哪些? Object/boolean/number/string/undefined/function

3.這題考AO

4.
沒執行

執行后

5.
列印true的哪些:

6.

7.

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/272155.html
標籤:其他
