8.19 記一次某某移~~動面試

考點

  • promise(考察執行順序, promise then能夠一直then原理, 怎麼處理thenable對象的)
  • 不一樣角色分配不一樣權限實現(動態路由, addRoutes, 前端先定義好不一樣用戶的動態路由列表, 登陸時候根據後臺返回標記匹配)
  • 路由懶加載使用方法( () => import(‘xxx.vue)),這樣作的好處
  • 動態組件(使用< component :is=props > 實現一個a標籤)
  • Render函數的使用, 可接收參數的意思
  • Vue生命週期created能夠作什麼事情
  • Vue項目優化, 能夠從代碼層面到webpack配置層面說
  • webpack分包, url-loader的做用
  • Async await 和 promise的關係
  • 你知道vfor中加key的做用嗎
  • 說說高階組件slot , 做用和場景
  • Vue的mixin如何使用,好處是啥,須要注意的點
  • Babel轉譯es6 Class語法後的代碼是長啥樣的,我想在低版本ie用數組的includes方法怎麼辦
  • Instanceof 的做用, 爲何儘可能不使用來判斷類型
  • New的過程
  • 箭頭函數的特性
  • 項目中遇到的難點,如何攻克

new的過程前端

/**
 * 
 * @param {<function>} fn 構造函數
 * @param  {...any} args 構造函數能夠接受參數
 */
function myNew (fn, ...args) {
    var obj = {};
    obj.__proto__ = fn.prototype;
    var ret = fn.call(obj, ...args);
    return typeof ret === 'function' || (typeof ret === 'object' && ret !== null) ? ret : obj;
}
New的過程:
1. 建立一個空對象,
2. 對象的__proto__鏈接到構造函數的prototype
3. 執行構造函數, this指向空對象
4. 處理邊緣狀況,返回值

var Person = function (name, age) {
this.name = name;
this.age = age;   
};
myNew(Person, 'biubiu', 10) // {name: 'biubiu', age: 10};
複製代碼

instanceofvue

/**
 * 
 * @param {*} left 
 * @param {*} right 
 */
instanceof : 意思是left的原型鏈上是否能找到right的prototype屬性, 用來檢測類型是不建議使用的, 不嚴謹
[] instanceof Array => true;
[] instanceof Object => true;
function myInstanceof (left, right) {
    var isFind = false;
    var proto = left.__proto__;
    var prototype = right.prototype;
    while (proto !== null) {
        if (proto !== prototype) {
            proto = proto.__proto__;
        } else {
            isFind = true;
            break;
        }
    }
    return isFind;
}

關於使用es5嚴格檢測數據類型
var type = type => data => type === Object.prototype.toString.call(data).slice(8, -1);
var util = {
    isArray: type('Array'),
    isNumber: type('Number'),
    isString: type('String'),
    isObject: type('Object'),
    isPromise: type('Promise'),
    isSymbol: type('Symbol'),
    isNull: type('Null'),
    isUndefined: type('Undefined'),
    isFunction: type('Function')
}
util.isFunction(Function) // true;
複製代碼

At last, wish all happy interview, happy offer!!

相關文章
相關標籤/搜索