前端面試題JavaScript篇——2022-09-13

来源:https://www.cnblogs.com/bidong/archive/2022/09/13/16689088.html
-Advertisement-
Play Games

每日3題 34 以下代碼執行後,控制臺中的輸出內容為? const num = { a: 10, add() { return this.a + 2; }, reduce: () => this.a - 2, }; console.log(num.add()); console.log(num.re ...


每日3題

34 以下代碼執行後,控制臺中的輸出內容為?

const num = {
  a: 10,
  add() {
    return this.a + 2;
  },
  reduce: () => this.a - 2,
};

console.log(num.add());
console.log(num.reduce());

35 以下代碼執行後,控制臺中的輸出內容為?

var x = 1;
if (function f() {}) {
  x += typeof f;
}

console.log(x);

36 以下代碼執行後,控制臺中的輸出內容為?

function f() {
  return f;
}
console.log(new f() instanceof f);
  • 公眾號【今天也要寫bug】更多前端面試題

答案及解析

34

// 答案:12 NaN
// 考察普通函數和箭頭函數中 this 的區別
// 普通函數中的 this 是運行時決定
// 箭頭函數中的 this 是編譯時就決定了的
const num = {
  a: 10,
  add() {
    return this.a + 2;
  },
  reduce: () => this.a - 2,
};

console.log(num.add()); // 隱式綁定:this 指向 num,因此輸出 12
console.log(num.reduce());
// 箭頭函數:this 指向 window,window 上沒有屬性 a
// 所以 this.a=undefined,最終輸出 NaN

35

// 答案:1undefined
// 考察類型轉換、typeof、加法賦值

var x = 1;
// if 條件中的 function f() {} 是 truthy 值
// 所謂 truthy(真值)指的是在布爾值上下文中,轉換後的值為 true 的值
// 所有除 false、0、-0、0n、""、null、undefined 和 NaN 以外的皆為真值
// 關於 truthy 和 falsy 的詳細說明,可查閱 MDN 文檔
if (function f() {}) {
  x += typeof f;
}
// typeof 返回的是一個字元串
// 加法賦值操作符 (+=) 將右操作數的值添加到變數,並將結果分配給該變數。
// 即先使用相加運算(+)得到結果,再賦值
// 相加運算符 (+) 用於對兩個操作數進行相加運算,如果操作數中有一方為字元串,
// 則該運算符將兩個操作數連接成一個字元串。

console.log(x); // 綜上,最終輸出 1undefined

36

// 答案:false
// 考察 new、原型鏈、instanceof

function f() {
  return f;
}
console.log(new f() instanceof f);
// new 運算符:如果構造函數顯式返回一個對象,則該對象會覆蓋 new 創建的對象
// new f() 得到的對象是 f

// instanceof 方法:判斷函數(右)的 prototype 屬性是否會出現在對象(左)的原型鏈上
// new f() instanceof f,即 f instanceof f
// 顯然 f 的 prototype 屬性不會出現在 f 的原型鏈上
// f.__proto__ => Function.prototype


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題解決秘籍 遇到問題,第一個請登錄蘋果開發者官網 檢查一遍賬號是否有許可權,是否被停用,是否過期,是否有協議需要同意,並且在右上角切換賬號後檢查所有關聯的賬號是否工作正常,apple賬號的郵箱也是個重要的地方,當有ipa上傳,賬號有發生變化,被停用,apple經常發送一些郵件,去檢查郵件通知,根據郵 ...
  • 在項目中出現多重嵌套情況時,會出現無法滑動的場景,比如經常碰到的場景 ViewPager -> Fragment -> RecyclerView -> RecyclerView | ViewPager 最外層是一個可滑動的 tabLayout+ViewPager,ViewPager 中是多個 Fra ...
  • AR作為一項增強現實技術,帶來了虛擬數字世界與現實世界的深度融合,這種虛實融合,不僅能應用於虛擬汽車展示、虛擬室內設計等視覺交互場景,更可通過動作交互控制虛擬世界場景,實現無邊界的人機互動。 比如人們在拍攝短視頻時,可以不接觸屏幕,僅通過做出特定手勢來控制特效切換;也可以在拍照時通過手勢識別控制快門 ...
  • Web 水印技術在信息安全和版權保護等領域有著廣泛的應用,對防止信息泄露或知識產品被侵犯有重要意義。水印根據可見性可分為可見水印和不可見水印(盲水印),本文將分別予以介紹,帶你探秘 web 水印技術。 ...
  • 前言 自成都九月份以來疫情原因被封了一兩周,居家著實無聊,每天都是盯著微信公眾號發佈的疫情數據看,那種頁面,就我一個前端仔來說,看著是真的醜啊!(⊙_⊙)?既然醜,那就自己動手開整!項目是2022.9.5開始的,截止2022.9.12我完成了大概有八成。主要是想讓數據更加直觀,而且可離線下載(當然還 ...
  • 跨域是什麼 簡單的講就是你在一個地方使用另一個地方的資源,被瀏覽器給擋下來了,不讓不用!當然,它擋下來是有自己理由的:為了安全(╬▔皿▔)╯。 解決跨域 我是用vue開發的,就vue代理模式解決跨域說明一下。 1、在vue.config.js中這樣寫: let devProxy = { //獲取ip ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 說明 基於uni-app開發,調用官方藍牙相關api實現連接藍牙與向藍牙熱敏印表機發送位元組流,可列印文字,二維碼,圖片,調整字體大小等,本文提供大概思路 結構 bluetooth.js 藍牙連接相關模塊封裝 commands.js 列印十 ...
  • 由於 vite 出現的時間不是很久,基於 vite 創建的項目沒有 vue-cli 那麼完整,如果要使用 vue 全家桶、ESLint 等,還需要開發人員手動添加和配置,步驟稍多,略繁瑣。雖然在創建項目時可以選擇 *Customize with create-vue*,但我由於網路問題,一直沒有成功... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...