100個最常問的JavaScript面試問答-第4部分
- 問題31.引數物件可用于ES6 arrow functions嗎?
- 問題32.如何在沒有原型的情況下創建物件?
- 問題33. JavaScript中變數的作用域是什么?
- 問題34. JavaScript中this的作用域是什么?
- 問題35.JavaScript中的Callback是什么?
- 問題36.typeOf運算子如何作業?
- 問題37.解釋JavaScript中的相等性
- 問題38.`==`和`===`之間有什么區別?
- 問題39.什么是ECMAScript?
- 問題40.ES6或ECMAScript 2015中有哪些新功能?
- 相關內容
問題31.引數物件可用于ES6 arrow functions嗎?
答:不可以,arguments物件不適用于ES6 arrow functions,
function one() {
return arguments;
}
const two = function () {
return arguments;
}
const three = function three() {
return arguments;
}
const four = () => arguments;
four(); // Throws an error - arguments is not defined
當我們呼叫函式four時,它將引發ReferenceError:引數未定義錯誤,
如果您的環境支持其余語法,我們可以解決此問題,
const four = (...args) => args;
這會將所有引數值自動放入陣列中,
問題32.如何在沒有原型的情況下創建物件?
答:我們可以使用來創建沒有原型的物件Object.create method,
const o1 = {};
console.log(o1.toString());
// logs [object Object] get this method to the Object.prototype
const o2 = Object.create(null);
// the first parameter is the prototype of the object "o2" which in this case will be null specifying we don't want any prototype
console.log(o2.toString());
// throws an error o2.toString is not a function
問題33. JavaScript中變數的作用域是什么?
答:
變數的范圍是程式在其中定義的區域,
JavaScript變數將只有兩個作用域,
- 全域變數-全域變數具有全域作用域,這意味著它在JavaScript代碼中的任何位置都是可見的,
- 區域變數-區域變數僅在定義它的函式中可見,函式引數始終是該函式的本地引數,
問題34. JavaScript中this的作用域是什么?
JavaScript中的這個關鍵字參考了它所屬的物件,
根據使用位置的不同,它具有不同的意義,
- 在方法中,這是指所有者物件
- 在函式中,這是指全域物件,
問題35.JavaScript中的Callback是什么?
答:
- 回呼是作為引數或選項傳遞給某些方法的普通JavaScript函式,
- 該功能將在另一個功能完成執行后執行,因此名稱為“回呼”,
- 在JavaScript中,函式是物件,因此函式可以將函式作為引數,并且可以由其他函式回傳,
問題36.typeOf運算子如何作業?
答:
- 該
typeof操作用于獲取其運算元的資料型別, - 運算元可以是文字或資料結構,例如變數,函式或物件,
- 它是一元運算子,位于其單個運算元之前,該運算元可以是任何型別,
- 它的值是一個字串,指示運算元的資料型別,
問題37.解釋JavaScript中的相等性
答:
JavaScript具有嚴格的和型別轉換的比較:
- 嚴格的比較(例如
===)在不強制的情況下檢查值是否相等 - 抽象比較(例如
==)在允許強制的情況下檢查值是否相等,
var a = "42";
var b = 42;
a == b; // true
a === b; // false
一些簡單的平等規則:
-如果比較中的任何一個值(又名“正”值)可以是true或false,請不要用==,而使用===,
- 如果比較中的任何一個值都可以是這些特定值(0, “”, 或 [] – 空陣列),請不要用
==,而使用===, - 在其他所有情況下,您都可以放心使用
==, 它不僅安全,而且在許多情況下都以提高可讀性的方式簡化了代碼,
問題38.==和===之間有什么區別?
== 是抽象相等運算子,而===是嚴格相等運算子,
==進行任何必要的型別轉換后,運算子將比較是否相等,
該===不會做型別轉換,因此,如果兩個值是不一樣的型別===將簡單地回傳false,
使用==時,可能會發生一些有趣的事情,例如:
1 == "1"; // true
1 == [1]; // true
1 == true; // true
0 == ""; // true
0 == "0"; // true
0 == false; // true
問題39.什么是ECMAScript?
- ECMAScript是制作腳本語言的標準,這意味著JavaScript遵循ECMAScript標準中的規范更改,因為它是JavaScript的藍圖,
- ECMAScript由ECMA國際標準組織在ECMA-262和ECMA-402規范中標準化,
在此處 閱讀有關ECMAScript的更多資訊,
問題40.ES6或ECMAScript 2015中有哪些新功能?
- Arrow Functions
- Classes
- Template Strings
- Enhanced Object literals
- Object Destructuring
- Promises
- Generators
- Modules
- Symbol
- Proxies
- Sets
- Default Function parameters
- Rest and Spread Operators
- Block Scoping with let and const
感謝您閱讀本篇博客文章,希望能對您有所幫助,我很快將更新系列的第5-10部分,應該在明天了,我會保持每天至少更新一篇,關注我,或者?或📑把本篇文章收藏起來,我會把后續內容鏈接放在本篇文章末尾,
保存或者長按識別關注作者公眾號啦啦啦好想biu點什么

后面我還會持續更新類似免費好玩的H5小游戲、Java小游戲、前端基礎知識、好玩、實用的專案和軟體等等
最后,不要忘了?或📑支持一下哦
相關內容
100個最常問的JavaScript面試問答-第1部分(1-10)
100個最常問的JavaScript面試問答-第2部分(11-20)
100個最常問的JavaScript面試問答-第1部分(21-30)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265487.html
標籤:其他
