原创 箭頭函數和普通的函數的區別

1、箭頭函數他不是一個構造函數(構造函數是一定有prototype屬性的),不能執行new操作(因爲new操作的底層是需要構造函數的prototype屬性的)。 2、箭頭函數不能使用arguments來輸出參數,而是用rest...來進行

原创 對象的屬性名的類型

對象的屬性名的類型一定不能是引用類型 對象的屬性可以是基本類型值,但是如果是引用類型值會將基本類型值轉換成字符串的形式。但是如果屬性是基本類型值得話 用字符串的形式或者是值得形式其實是都可以的。 下面看一道阿里的面試題: 其實意思就是

原创 快捷鍵命令

01. cd 進入某個文件夾:直接 D:==》 回車;然後想進入某個文件夾: cd 文件夾name ==》回車(注意:直接cd D:\wenjianname 這樣是不行的,必須先進入D盤再說) 02. 清空命令行:cls 03. 刪除某個

原创 js繼承-call繼承

call繼承是在子類中把父類當做普通的函數去執行,讓父類的this指向子類的實例,相當於給子類設置了很多私有的屬性和方法。 特點:1、只能繼承私有的屬性和方法(因爲只是將父類當做普通的函數去執行,並沒有動原型鏈上的屬性)        

原创 webpack打包構建

01. module.exports 和 require 是node的模塊暴露 (如下示例) //methods.js module.exports = function(){    console.log("你好呀!林書豪!")

原创 Cache-Control的幾個值

Cache-Control 可緩存性 public:http請求返回的過程中,在cache-control中設置這個值,代表http請求返回的內容經過得任何路徑當中(包括一些http代理服務器以及發送請求的客戶端服務器),都可以對返回的內

原创 mdn (遇到不知道的語法去這個網站去搜索)

https://developer.mozilla.org/zh-CN/

原创 js new執行時候的細節

new過程執行的具體細節: 1、使用Object.create()創建一個空對象,試這個空對象的__proto__屬性指向構造函數的prototype屬性。 2、執行構造函數,使用call函數將構造函數裏面的this指向剛纔創建的空對象,

原创 js繼承-寄生組合繼承

寄生組合繼承保留了call繼承,並且也實現了類似於原型鏈的繼承方式。 <script> // 寄生組合繼承是保留了call繼承,並且還有有原型鏈的繼承 function A(x) { this.x =

原创 作用域和作用域鏈、閉包面試題

ECStack:全局上下文環境棧 EC(G):全局執行上下文 VO(G):全局對象 創建函數的時候: 創建一個堆(存儲代碼字符串) 初始化當前函數的作用域 [[scope]] = 所在上下文中的變量對象 VO/AO 函數執行的時候: 創建

原创 瀏覽器的堆內存和佔內存的底層處理

說白了就是要理解一個事情 : var x = {a: 1 }這個表達式發生了什麼 ? 首先是聲明(declare)一個變量x ,然後右面開闢了一個堆的空間用來放a:1 ,最後進行賦值的操作。然後就是連等的執行順序: x.m =

原创 面向對象的理解

1、談談對面向對象的理解 繼承:原型鏈繼承、call繼承、寄生組合繼承、es6的繼承。 封裝:高內聚、低耦合 封裝:將常用的功能封裝成一個函數,方便下次使用。 多態:重載、重寫 重載:其他語言的重載是方法名相同、形參的個數或類型不同。主要

原创 1、jsonP跨域

判斷同源和非同源: 協議、域名、端口號 jsonp的跨域基於幾個地方: 1、基於script這種無跨域限制的標籤 (script、img 、link 、iframe)這些標籤不存在跨域請求的限制。 2、http://127.0.0.1:8

原创 快手筆試題

1、var a = {x: 1}    var b = a     a.x = a = { n: 1}    console.log(a)       console.log(b) 這道題考的是堆棧內存的知識  還有就是一個重要

原创 promise的使用

var promise = new Promise(function (resolve, reject) { var img = document.createElement("img"); img.src = 'htt