本題中的說法是錯誤的,因此,正確答案為 B. 錯誤。
解析:
在 Vue-Router 中:
-
$route是一個響應式對象,包含了當前路由的信息,例如路徑、參數(shù)、查詢等。它不包含路由跳轉(zhuǎn)方法或鉤子函數(shù),僅僅用于獲取當前路由的信息。 -
$router是 Vue-Router 的路由實例,提供了路由的跳轉(zhuǎn)方法(如push、replace等)以及路由的鉤子函數(shù)等。
因此,題目中關(guān)于 $route 的描述是錯誤的。
以下是針對每個選項的詳細分析:
A. typeof a === "array",可以判斷一個對象 a 是數(shù)組
-
錯誤
- avaScript 中 typeof 操作符對于數(shù)組返回的是 "object",而不是 "array"。這是歷史遺留問題,因為數(shù)組在本質(zhì)上也是一種對象。
-
正確方法:
-
Array.isArray(a)(ES5+ 推薦) -
a instanceof Array(但可能在多窗口/iframe 環(huán)境下失效) -
Object.prototype.toString.call(a) === "[object Array]"(最可靠)
-
屬性的可枚舉性和所有權(quán)
JavaScript 對象中的每個屬性能根據(jù)三個因素進行分類:
- 可枚舉或不可枚舉;
- 字符串或 symbol;
- 自有屬性或從原型鏈繼承的屬性。
C. for...in 循環(huán)只能遍歷對象上的可枚舉屬性
-
正確
-
for...in會遍歷對象的所有可枚舉自有屬性及繼承的可枚舉屬性(來自原型鏈)。 - 如果需要僅遍歷自有屬性,需配合
hasOwnProperty檢查:for (const key in obj) { if (obj.hasOwnProperty(key)) { console.log(key); } }
-
可枚舉的、自有的 必須二者同時
Object.keys
Object.values
Object.entries
Object.assign
...對象展開
自有的不管是否可枚舉
hasOwnProperty()
Object.hasOwn()
可枚舉自有任意條件
in
可枚舉的(自身或繼承的都行)
for...in