20190423面试记录
1)apply,call,bind的區別 ?
應用場景:用于改變this的指向
apply接收兩個參數,第一個函數this將指向的對象,第二個是數組函數接收的參數
call接收多個參數,第一個函數this將指向的對象,后面依次是函數接收的參數
bind接收多個參數,第一個函數this將指向的對象,后面依次是函數接收的參數,不會執行該函數,而是會返回已經改變了this的實例
2)v-for 和 v-if哪個先執行
v-for先執行
3)下面代碼是怎么執行的
var newPromise=new Promise(function(resolve,reject){console.log(1)resolve();console.log(2)}) newPromise.then(function(){console.log(3) }) console.log(4)1243,只有then里面的函數是回調的
4)? angular的臟值檢查?
1、檢查數據模型的值發生改變時(僅限于內置的指令及方法 1、用戶輸入,點擊,提交 ? 2、請求服務端數據? 3、定時事件)
2、會執行$digest遍歷監聽器判斷臟值(判斷新的值和舊的值是否相同)
3、如果有臟值(值發生了變化)則持續進行$digest直到值穩定不在發生變化,才會在view里渲染出來
function Scope() {this.$$watchers = []; } var aScope = new Scope(); aScope.firstName = 'Jane'; aScope.lastName = 'Smith';Scope.prototype.$watch = function(watchFn, listenerFn) {var watcher = {watchFn: watchFn,listenerFn: listenerFn};this.$$watchers.push(watcher); };Scope.prototype.$digest = function() {var self = this;_.forEach(this.$$watchers, function(watch) {var newValue = watch.watchFn(self);var oldValue = watch.last;if (newValue !== oldValue) {watch.listenerFn(newValue, oldValue, self);}watch.last = newValue;}); };?
5)angular里面的service,factory,provide有什么區別?
1、相同點使用時都是通過依賴注入來使用
2、定義時的差別
factory相當于提供一個方法,通過這個方法定義一個對象,并且給這個對象添加屬性和方法,返回這個對象
service的話是直接給this添加屬性和方法
provider的話必須體統$get方法該方法和factory一樣,并且在加載module時啟動時進行配置
?
6)AngularJS,Vue,React的優缺點?
不同點:
1、AngularJS有依賴注入,雙向數據綁定,兼容ie8及ie8以上,使用臟檢查,學習成本比較大
2、React函數式編程JSX語法,兼容性好,對javascript基礎要求較高
3、Vue只兼容ie8以上版本,采用依賴追蹤并且使用異步隊列更新,所有數據的都是獨立觸發的,容易上手
相同點:
1、React和Vue都有虛擬dom,單向數據流
2、Vue與AngularJS都有模板語法
?
7)angular的常用方法$eval()?
$eval(expression, locals)立刻解析和計算出一個 scope 表達式
$destroy從 scope 鏈里移除該 scope; scope 和后代們不會收到事件, watcher 也不再被觸發。
$broadcast(evt, args)發送事件 evt, 在當前scope 以及它 所有的 children 上觸發。
$emit(evt, args)發送事件 evt, 在scope 鏈上冒泡,在當前scope 以及所有的 $parents 上觸發,包括 $rootScope。
$watch(watchExp, listener, objectEquality)為scope添加一個 watch 監聽器。
?
轉載于:https://www.cnblogs.com/llcMite/p/10757398.html
總結
以上是生活随笔為你收集整理的20190423面试记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java总结:正则表达式进行校验
- 下一篇: SVN:安装svn进行上传和检出文件的常