前端學習問題總結

2021-10-25 18:02:29 字數 2502 閱讀 5736

1.null和undefined的區別?

答:undefined型別只有乙個值,即undefined。當宣告的變數還未被初始化時,變數的預設值為undefined。null型別也只有乙個值,即null。null用來表示尚未存在的物件,常用來表示函式企圖返回乙個不存在的物件。

2.什麼是單例模式,單例模式在前端開發中有什麼應用?

class

singleton

// 構造乙個廣為人知的介面,供使用者對該類進行例項化

static

getinstance

(name)

return

this

.instance;

}

3.js分為哪兩大型別?都有各自的什麼特點?

答:js分為原始型別和物件型別,原始型別又稱基本資料型別,分別有6種:null,string,symbol,undefined,number,boolean,除了這這些基本資料型別剩下的都是物件型別,比如陣列、物件之類,判斷乙個變數是什麼型別的方法是,首先使用typeof方法,如果是資料基本型別會返回基本資料型別的名稱,如果返回的是object,則需要使用instanceof,instanceof會返回物件的建構函式。如果是陣列型別會返回它的建構函式array,通過這個可以判斷物件的型別,但是instanceof並不能準確的判斷物件的型別,具有一定得侷限性。

4.原生js常用的方法有哪些?

(1)typeof,是判斷元素具體是什麼型別的方法,一般會返回資料型別,但是需要注意的是typeof null返回的結果是object,這是乙個js的bug,typeof [1,2]返回的結果是object,因為在資料型別中並沒有array這一項,typeof symbol()返回的結果是symbol,這是es6新特性。

(2) instanceof,它用於例項和建構函式的對應,返回的是乙個布林型別資料。比如想要判斷乙個變數是不是乙個陣列,用typeof方法已經不合適了,但是可以用[1,2] instanceof array來判斷。因為,[1,2]是陣列,它的建構函式是array。同理:

function foo

(name)

var foo =

newfoo

('bar'

)//這裡foo的是foo的例項,所以執行下面的方法會返回true

console.

log(foo instanceof

foo)

5.關於值型別和引用型別,請說出他們的區別?

答:上面提到的資料型別都是值型別,只有object和function是引用型別,其他的都是值型別。在引數傳遞方式上,值型別是按值傳遞,引用型別是按照共享傳遞。下面通過例子更及時透徹的說明一下:

// 值型別

var a =

10var b = a

b =20

console.

log(a)

// 10

console.

log(b)

// 20

上述**中,a和b都是值型別,兩者分別修改賦值,相互之間沒有影響。下面是引用型別的例子:

// 引用型別

var a =

var b = a

b.x =

100b.y =

200console.

log(a)

// console.

log(b)

//

function foo

(a)function bar

(b)var a =1;

var b =

;foo

(a);

bar(b)

;console.

log(a)

;// 1

console.

log(b)

;// value: new

6.new 的原理是什麼?通過 new 的方式建立物件和通過字面量建立有什麼區別?

在呼叫new的過程中會發生一下四件事情:

1.新生成乙個物件

2.鏈結到原型

3.繫結this

4.返回新物件

對於物件來說,其實都是通過new產生的,無論是function foo()還是let a=,對於建立乙個物件來說,更推薦使用字面量的方式建立物件(無論是考慮效能還是可讀性)。因為你使用new object()的方式建立物件需要通過作用域立鏈一層一層的找到object,但是你使用字面量方式就沒這個問題。

function foo()

// function 就是個語法糖

// 內部等同於 new function()

let a =

// 這個字面量內部也是使用了 new object()

前端學習總結

1 對前端的印象在於html 設定格式,css 設定樣式,js 互動事件,經過4個星期左右的開發能大致搭乙個前後端互動的框架,利用到的技術包括 前端 layui框架,後端 springboot,mongodb.2 經過這幾周的學習收穫頗多,尤其是如何去解決乙個新問題,乙個基本不熟悉的領域,我相信這是...

學習前端總結

什麼是表示式?在頁面中能夠得到結果,那麼就代表是表示式。如下圖 在控制台輸入1 1 回車得到true,true就是乙個結果,所以1 1 就是乙個表示式 只輸入乙個數字2,回車也能得到乙個值2,所以2也是乙個表示式 輸入乙個不帶引號的字元,則沒有結果,直接報錯,所以就不是表示式 帶引號 123 則代表...

新手前端問題總結

本人是乙個前端新手,只知道var和function並且不知道fuction怎麼用,最近一段時間在寫前端,所以有些小總結,特別初級,不喜勿噴,這只是我最近接觸js和vue的一些小總結。1.router link的使用 使用router link有兩種傳值方式 1 在utils中直接用?傳值就可,使用獲...