JavaScript前端面試題總結

一、em和rem

像素(px):用於元素的邊框或定位。javascript

em/rem:用於作響應式頁面,em相對於父元素,rem相對於根元素。css

  • rem 單位翻譯爲像素值是由 html 元素的字體大小決定的。 此字體大小會被瀏覽器中字體大小的設置影響,除非顯式重寫一個具體單位。
  • em 單位轉爲像素值,取決於他們使用的字體大小。 此字體大小受從父元素繼承過來的字體大小,除非顯式重寫與一個具體單位。

二、語義化標籤

定義:命名或者標籤有意義,可以直觀的看出來是什麼意思html

h5新增的標籤:header、nav(導航)、footer、vedio、audio、time、section(章節)、artical、asidejava

三、ES6新特性

ES52009年發佈 ES62015年發佈python

  • 模板字符串
  • let和const
  • for of 只循環訪問對象的中值
  • ···res接受剩餘的實參
  • 箭頭函數 const greet = name => Hello ${name}!;
  • JavaScript中標準函數this

四、css3新特性

  • 新增各類css選擇器
  • 圓角 border-radius
  • 多列布局
  • 陰影和反射
  • 文字特效text-shadow
  • 線性漸變
  • 旋轉transform

五、css3新增的僞類

  • p:first-of-type 選擇屬於其父元素的首個p元素的每一個p元素。
  • p:last-of-type 選擇屬於其父元素的最後p元素的每一個p元素。
  • p:only-of-type 選擇屬於其父元素惟一的p元素的每一個p元素。
  • p:only-child 選擇屬於其父元素的惟一子元素的每一個p元素。
  • p:nth-child(2) 選擇屬於其父元素的第二個子元素的每一個p元素。
  • :after 在元素以前添加內容,也能夠用來作清除浮動。
  • :before 在元素以後添加內容。
  • :enabled 已啓用的表單元素。
  • :disabled 已禁用的表單元素。
  • :checked 單選框或複選框被選中。

六、閉包函數、原型、原型鏈;做用域、做用域鏈

閉包函數定義: 定義:當兩個函數發生嵌套關係時,內層函數使用外層函數的變量,並在全局環境下調用內層函數保護內部變量不別清理掉css3

做用域定義:能夠訪問變量的集合。全局做用域:在全局或任何地方均可以起做用的變量,任何地方均可以修改;局部做用域:- 定義在函數內部的變量、函數的形參es6

做用域鏈:咱們能夠把做用域當作是用鏈條鏈接起來的,這樣可以使得函數能有序的進行運行:裏層函數能夠訪問外層函數的變量,可是外層函數不能夠訪問裏層函數的變量瀏覽器

每一個對象都會在其內部初始化一個屬性,就是prototype(原型),當咱們訪問一個對象的屬性時 若是這個對象內部不存在這個屬性,那麼他就會去prototype裏找這個屬性,這個prototype又會有本身的prototype,因而就這樣一直找下去,也就是咱們平時所說的原型鏈的概念服務器

關係:instance.constructor.prototype = instance.protocookie

特色:JavaScript對象是經過引用來傳遞的,咱們建立的每一個新對象實體中並無一份屬於本身的原型副本。當咱們修改原型時,與之相關的對象也會繼承這一改變當咱們須要一個屬性的時,Javascript引擎會先看當前對象中是否有這個屬性, 若是沒有的 就會查找他的Prototype對象是否有這個屬性,如此遞推下去,一直檢索到 Object 內建對象

七、瀏覽器優化

  • 雪碧圖:雪碧圖是根據CSS sprite音譯過來的,就是將不少不少的小圖標放在一張圖片上,就稱之爲雪碧圖。
  • 圖片精靈技術

八、 請描述一下 cookies,sessionStorage 和 localStorage 的區別?

  • cookie是網站爲了標示用戶身份而儲存在用戶本地終端(Client Side)上的數據(一般通過加密)

  • cookie數據始終在同源的http請求中攜帶(即便不須要),記會在瀏覽器和服務器間來回傳遞

  • sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存

  • 存儲大小:

    • cookie數據大小不能超過4k
    • sessionStorage和localStorage雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大
  • 有期時間:

    • localStorage 存儲持久數據,瀏覽器關閉後數據不丟失除非主動刪除數據
    • sessionStorage 數據在當前瀏覽器窗口關閉後自動刪除
    • cookie 設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉

九、http中的get和post請求區別

http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

十、三種傳輸方式put、delter

十一、瀏覽器內核

IE——>IE內核 谷歌——>wbbkit內核 火狐——>gecko(火狐)內核

12.簡述一下src與href的區別

src用於替換當前元素,href用於在當前文檔和引用資源之間確立聯繫。

  • src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標籤所在位置;在請求src資源時會將其指向的資源下載並應用到文檔內,例如js腳本,img圖片和frame等元素
  • href是Hypertext Reference的縮寫,指向網絡資源所在位置,創建和當前元素(錨點)或當前文檔(連接)之間的連接,若是咱們在文檔中添加

13.HTML、JavaScript

HTML:超文本標記語言

python:面向對象的動態類型,強類型語言

JavaScript:基於對象和事件驅動的鬆散型、解釋性語言,寄宿於瀏覽器,單線程異步

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言內置支持類型,他的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,用來給html網頁增長動態功能。

  • 基於對象/基於原型:面向對象的開發語言;

  • 事件驅動:全部的效果都是經過事件觸發一系列代碼實現的;

  • 解釋性:不須要編譯,寄宿於瀏覽器,不須要運行環境;

  • 鬆散型:要求i沒有嚴格;沒有那麼嚴謹;

  • 動態類型:變量,能夠加效果,動態的變化

  • 弱類型:對類型沒有那麼嚴格,好比字符串能夠跟數字相加

  • 基於原型的:內置支持類型;

1四、自動換行三行代碼

 word-wrap:break-word; word-break:break-all; overflow: hidden; word-wrap:break-word; word-break:break-all; overflow: hidden;

1五、選擇器的優先級

!important > 行內樣式 > #id > .class > tag > * > 繼承 > 默認

選擇器 從右往左 解析

1六、new操做符具體幹了哪些事?

  • 建立一個空對象,而且 this 變量引用該對象,同時還繼承了該函數的原型
  • 屬性和方法被加入到 this 引用的對象中
  • 新建立的對象由 this 所引用,而且最後隱式的返回 this

1七、this指向

  • this的指向在函數定義的時候是肯定不了的,只有函數執行的時候才能肯定this到底指向誰,實際上this的最終指向的是那個調用它的對象
  • 《javascript語言精髓》中大概歸納了4種調用方式:
  • 方法調用模式
  • 函數調用模式
  • 構造器調用模式
  • apply/call調用模式

1八、深淺拷貝

  • 淺拷貝:是一個傳址,也就是把a的值賦給b的時候同時也把a的址賦給了b,當b(a)的值改變的時候,a(b)的值同時也會改變

  • 深拷貝:深拷貝是指,拷貝對象的具體內容,二內存地址是自主分配的,拷貝結束以後倆個對象雖然存的值是同樣的,可是內存地址不同,倆個對象頁互相不影響,互不干涉

  • 初始數據類型和引用數據類型的區別:分別放在棧區和堆區,棧區和堆區的區別:棧區放置變量和函數名,執行完程序自動刪除,堆區放置引用的數據,能夠本身刪除,也會被js的垃圾回收處理刪除

1九、JavaScript發展的時間軸:

一、1995:JavaScript誕生,它的初始名叫LiveScript。
二、1997:ECMAScript標準確立。
三、1999:ES3出現,與此同時IE5風靡一時。
四、2000–2005: XMLHttpRequest又名AJAX。
五、2009: ES5出現,也就是咱們如今用的,例如foreach,Object.keys,Object.create和JSON標準。
六、2015:ES6/ECMAScript2015出現
相關文章
相關標籤/搜索