日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20190808面试记录

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20190808面试记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Angular的核心?

組件,指令,服務,依賴注入

性能優化?

1、減少http請求(圖片壓縮合并,css壓縮合并,js文件壓縮合并)

2、檢查是否有重定向問題

3、檢查是否一個列表有多次請求問題

4、減少DOM數量

5、延遲加載

6、提前加載

7、能用css做的盡量不要用js去做,能有原生寫的盡量不引用外部插件

8、減少cookie的使用

9、盡量不用iframe

10、前端和后臺協調,使用相應資源的壓縮

11、根據需求使用ajax緩存

12、減少dom操作

13、減量不嵌套循環

14、css放head盡量不使用@import,因為@import是同步操作,只有把對應的樣式導入后,才會繼續向下加載,而link是異步的操作

15、css設置定位后最好設置z-index改變盒子的層級

16、使用window.requestAnimationFrame代替傳統的定時器動畫,如果可以使用setTimeout代替的setInterval就盡量不用setInterval

17、script標簽放在底部加載

18、綁定多個事件的時候可以使用事件委托,減少循環給元素綁定事件

19、減少flash的使用

20、合理利用本地緩存

21、盡量給動畫設置單獨的一個圖層(避免重繪和回流)

AMD和CMD的標準?現階段使用的都是什么標準?

AMD 是 RequireJS 在推廣過程中對模塊定義的規范化產出。
CMD 是 SeaJS 在推廣過程中對模塊定義的規范化產出。

AMD推崇依賴就近

CMD推崇依賴前置

// CMD define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此處略去 100 行 var b = require('./b') // 依賴可以就近書寫 b.doSomething() // ... })// AMD 默認推薦的是 define(['./a', './b'], function(a, b) { // 依賴必須一開始就寫好 a.doSomething() // 此處略去 100 行 b.doSomething() ... })

現階段大部分框架用的較多應該是AMD,依賴前置

TypeScript的多態?

父類定義了一個接口,子類有多種實現

?

AngularJS的依賴注入?

依賴注入(DI)是用來創建對象及其依賴的其它對象的一種方式。 當依賴注入系統創建某個對象實例時,會負責提供該對象所依賴的對象(稱為該對象的依賴)。

@Injectable 裝飾器會指出這些服務或其它類是用來注入的。它還能用于為這些服務提供配置項。

providers 告訴 Angular,它的根注入器要負責調用類的構造函數來創建一個實例,并讓它在整個應用中都是可用的。

組件中的providers服務還可以提供給指定的組件。在組件級提供的服務只能在該組件及其子組件的注入器中使用。

import { Component } from '@angular/core'; import { HeroService } from './hero.service';@Component({selector: 'app-heroes',providers: [ HeroService ],template: `<h2>Heroes</h2><app-hero-list></app-hero-list> ` }) export class HeroesComponent { }

?

Angular的臟值檢查不再被吐槽呢?

Angular 使用了 zone.js 這個大殺器來跟蹤異步任務,并進行臟檢查

每一個組件都都它自己的檢測器(detector),用于負責檢查其自身模板上綁定的變量。所以每一個組件都可以獨立地決定是否進行臟檢查。

Angular 中組件是以樹的形式組織起來的,相應地,檢測器也是一棵樹的形狀。當一個異步事件發生時,臟檢查會從根組件開始,自上而下對樹上的所有子組件進行檢查。相比 Angular1 中的帶有環的結構,這樣的單向數據流效率更高,而且容易預測

<!--value是數據綁定,input是事件綁定--> <input [value]="currentHero.name" (input)="currentHero.name=$event.target.value"> <!--等價--> <input [(ngModel)]="currentHero.name">

而Angular2接入了ZoneJS,由它監聽了Angular所有的異步事件。ZoneJS重寫了所有的異步API(所謂的猴子補丁,MonkeyPath)。ZoneJS會通知Angular可能有數據發生變化,需要檢測更新

Angularjs采用的是雙向數據流,錯綜復雜的數據流使得他不得不多次檢查,使得數據最終趨向穩定

?

?

?

轉載于:https://www.cnblogs.com/llcMite/p/11325659.html

總結

以上是生活随笔為你收集整理的20190808面试记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。