小水牛23年的面試準備

考點一. 變量提升
關於變量提升和this
es6箭頭函數的this

第一.

this 指向當前的環境
this的詳細介紹
如果搭配了那個箭頭函數的話
在這裏插入圖片描述

第二

.很奇葩的變量先初始化 賦值在後面的,var bar=2初始化在前,賦值在後
在這裏插入圖片描述

第三

自增自減運算符優先於return
在這裏插入圖片描述
四 同樣關於自增自減運算符
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

第四

就是for循環中的“ ”用法和【“”】用法

Problem Explanation Note: dot-notation will cause errors in this challenge.

[square-bracket] notation must be used to call a variable property name.

The following code will not work.

Hint 1:
for (let user in obj) {
  if (obj.user.online === true) {
    //code
  }
}

Hint 2
Example 2 demonstrates how using [square-bracket] notation the code will be executed.

for (let user in obj) {
  if (obj[user].online === true) {
    //code
  }
}

總結就是 當那個是var出來的變量的時候 記得一定要【】.
但我也不知道這特麼的 . 和 [] 是要怎麼搞的,以後再說

反正就是必須使用[square-bracket]符號來調用變量屬性名稱。

第五 點語法和方括號語法

[] 和 .

  • 點語法的最大弊端是不能加變量
  • 方括號可以加變量和對象,但如果對象是字符串需要加雙引號“ ”
  • 在這裏插入圖片描述
    在這裏插入圖片描述

在這裏插入圖片描述

第六

動態的屬性
在這裏插入圖片描述

第七

引用類型的賦值
在這裏插入圖片描述

第八

  • 基本類型和引用類型

ECMAScript 中所有函數的參數都是按值傳遞的。
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
檢測類型的方法
在這裏插入圖片描述

第九

執行環境的類型總共只有兩種——全局和局部(函數),但還是有其他辦法來延長作用域鏈。
在這裏插入圖片描述

第十

深入瞭解塊級作用域
es6的解決方法是let,JavaScript的花括號起不到塊級作用,if的變量提升會導致外面的變量失效

在這裏插入圖片描述

第十

函數聲明與函數表達式
在這裏插入圖片描述

第十一

函數內部屬性

  • 在函數內部,有兩個特殊的對象:arguments 和this。

arguments 的主要用途是保存函數參數,但這個對象還有一個名叫callee 的屬性,該屬性是一個指針,指向擁有這個arguments 對象的函數。

請看下面這個非常經典的階乘函數:

function factorial(num){
    if (num <=1) {
        return 1;
    } else {
        return num * factorial(num-1)
    }
}

爲消除這種緊密耦合的現象,可以像下面這樣使用arguments.callee:

function factorial(num){
    if (num <=1) {
        return 1;
    } else {
        return num * arguments.callee(num-1)
    }
}

請讀者一定要牢記,函數的名字僅僅是一個包含指針的變量而已。
在這裏插入圖片描述

屬性類型

數據屬性 訪問器屬性

  • 關於訪問器的東西還很多沒搞懂
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章