1. 程式人生 > 其它 >前端—每天5道面試題(6)

前端—每天5道面試題(6)

1、JSON 的瞭解?

  JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它是基於JavaScript的一個子集。資料格式簡單, 易於讀寫, 佔用頻寬小。

  格式:採用鍵值樹的方式,{‘age’:'16'}

2、call()和apply的區別  

  apply()函式有兩個引數:第一個引數是上下文,第二個引數是引數組成的陣列。如果上下文是null,則使用全域性物件代替。
  如:function.apply(this,[1,2,3]);
  call()的第一個引數是上下文,後續是例項傳入的引數序列。
  如:function.call(this,1,2,3);



3、哪些常見操作會造成記憶體洩漏?

  記憶體洩漏指任何物件在您不再擁有或需要它之後仍然存在。
  垃圾回收器定期掃描物件,並計算引用了每個物件的其他物件的數量。如果一個物件的引用數量為 0(沒有其他物件引用過該物件),或對該物件的惟一引用是迴圈的,那麼該物件的記憶體即可回收。
  setTimeout 的第一個引數使用字串而非函式的話,會引發記憶體洩漏。
  閉包、控制檯日誌、迴圈(在兩個物件彼此引用且彼此保留時,就會產生一個迴圈)。

4、執行緒與程序的區別

  一個程式至少有一個程序,一個程序至少有一個執行緒。
  執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。
  另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。


  執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有一個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。
  從邏輯角度來看,多執行緒的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

5、如何解決跨域問題  

  JSONP:
  原理是:動態插入script標籤,通過script標籤引入一個js檔案,這個js檔案載入成功後會執行我們在url引數中指定的函式,並且會把我們需要的json資料作為引數傳入。


  由於同源策略的限制,XmlHttpRequest只允許請求當前源(域名、協議、埠)的資源,為了實現跨域請求,可以通過script標籤實現跨域請求,然後在服務端輸出JSON資料並執行回撥函式,從而解決了跨域的資料請求。
  優點是相容性好,簡單易用,支援瀏覽器與伺服器雙向通訊。缺點是隻支援GET請求。



  

原文連結:https://blog.csdn.net/qq_43291759/article/details/109746828