整理出來的前端js面試題

來源:互聯網
上載者:User

標籤:快速   使用   his   駝峰命名   安全   兩種   etc   品質   請求   

15、HTTP狀態

   100  Continue  繼續,一般在發送post請求時,已發送了http header之後服務端將返回此資訊,表示確認,之後發送具體參數資訊

    200  OK   正常返回資訊

    201  Created  請求成功並且伺服器建立了新的資源

    202  Accepted  伺服器已接受請求,但尚未處理

    301  Moved Permanently  請求的網頁已永久移動到新位置。

    302 Found  臨時性重新導向。

    303 See Other  臨時性重新導向,且總是使用 GET 請求新的 URI。

    304  Not Modified  自從上次請求後,請求的網頁未修改過。

    400 Bad Request  伺服器無法理解請求的格式,用戶端不應當嘗試再次使用相同的內容發起請求。

    401 Unauthorized  請求未授權。

    403 Forbidden  禁止訪問。

    404 Not Found  找不到如何與 URI 相匹配的資源。

    500 Internal Server Error  最常見的伺服器端錯誤。

    503 Service Unavailable 伺服器端暫時無法處理請求(可能是過載或維護)。

16、git fetchgit pull的區

   git pull:相當於是從遠程擷取最新版本並merge到本地

git fetch:相當於是從遠程擷取最新版本到本地,不會自動merge

17、對前端介面工程師這個職位是怎麼樣理解的?它的前景會怎麼樣

   首先要求我們的代碼高複用低耦合,這樣檔案小,好維護,而且好擴充。

前端是最貼近使用者的程式員,比後端、資料庫、產品經理、運營、安全都近。

    1、實現介面互動

    2、提升使用者體驗

    3、加快前後端資料互動

前端是最貼近使用者的程式員,前端的能力就是能讓產品從 90分進化到 100 分,甚至更好,

 參與項目,快速高品質完成實現,精確到1px;

 與團隊成員,UI設計,產品經理的溝通;

 做好的頁面結構,頁面重構和使用者體驗;

 處理hack,相容、寫出優美的代碼格式;

 針對伺服器的最佳化、擁抱最新前端技術。

18.document load 和document ready的區別
Document.onload 是在結構和樣式載入完才執行js
Document.ready原生種沒有這個方法,jquery中有 $().ready(function)

19、介紹一下 JS 的基礎資料型別 (Elementary Data Type)和內建對象

Undefined、Null、Boolean、Number、String

JS 有哪些內建對象。

Object 是 JavaScript 中所有對象的父物件

資料封裝類對象:Object、Array、Boolean、Number、String

其他對象:Function、Argument、Math、Date、RegExp、Error

20、列舉幾條 JavaScript 的基本代碼規範

(1)不要在同一行聲明多個變數

(2)如果你不知道數組的長度,使用 push

(3)請使用 ===/!== 來比較 true/false 或者數值

(4)對字串使用單引號 ‘‘(因為大多時候我們的字串。特別html會出現")

(5)使用對象字面量替代 new Array 這種形式

(6)絕對不要在一個非函數塊裡聲明一個函數,把那個函數賦給一個變數。瀏覽器允許你這麼做,但是它們解析不同

(7)不要使用全域函數

(8)總是使用 var 來聲明變數,如果不這麼做將導致產生全域變數,我們要避免汙染全域命名空間

(9)Switch 語句必須帶有 default 分支

(10)使用 /**...*/ 進行多行注釋,包括描述,指定類型以及參數值和傳回值

(11)函數不應該有時候有傳回值,有時候沒有傳回值

(12)語句結束一定要加分號

(13)for 迴圈必須使用大括弧

(14)if 語句必須使用大括弧

(15)for-in 迴圈中的變數應該使用 var 關鍵字明確限定範圍,從而避免範圍汙染

(16)避免單個字元名,讓你的變數名有描述意義

(17)當命名物件、函數和執行個體時使用駝峰命名規則

(18)給對象原型分配方法,而不是用一個新的對象覆蓋原型,覆蓋原型會使繼承出現問題

(19)當給事件附加資料時,傳入一個雜湊而不是原始值,這可以讓後面的貢獻者加入更多資料到事件數目據裡,而不用找出並更新那個事件的事件處理器

21、javascript的typeof返回哪些資料類型
Object number function boolean underfind

22、例舉3種強制類型轉換和2種隱式類型轉換?
強制(parseInt,parseFloat,number)
隱式(== – ===)

23、split() join() 的區別
前者是切割成數組的形式,後者是將數群組轉換成字串

24、數組方法pop() push() unshift() shift()(將所學的所有對數組增刪的方法都列出來)
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除

push方法用於將一個或多個元素添加或附加到數組的末尾。使用這種方法,可以通過傳遞多個參數來附加多個元素。

  Unshift方法就像在數組開頭工作的push方法。該方法用於將一個或多個元素添加到數組的開頭。

25、IE和DOM事件流的區別,什麼是DOM事件流
1.執行順序不一樣、
2.參數不一樣
3.事件加不加on
4.this指向問題
Dom事件流見 1190000004463384 (一定要理解,理解之後寫出答案)


26.ajax請求的時候get 和post方式的區別
一個在url後面 一個放在虛擬載體裡面
有大小限制
安全問題
應用不同 一個是論壇等只需要請求的,一個是類似修改密碼的


27、元素的樣式/類如何改變?

  可以通過以下方式完成:

  document.getElementById(“myText”).style.fontSize = “20?;

  或

  document.getElementById(“myText”).className = “anyclass”;

28、cookie session 的區別

1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。

 2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙

    考慮到安全應當使用session。

 3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能

     考慮到減輕伺服器效能方面,應當使用COOKIE。

 4、單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個網站最多儲存20個cookie。

 5、所以個人建議:

    將登陸資訊等重要訊息存放為SESSION

    其他資訊如果需要保留,可以放在COOKIE中

29、DOM操作——怎樣添加、移除、移動、複製、建立和尋找節點

    1)建立新節點

      createDocumentFragment()    //建立一個DOM片段

      createElement()   //建立一個具體的元素

      createTextNode()   //建立一個文本節點

2)添加、移除、替換、插入

      appendChild()

      removeChild()

      replaceChild()

      insertBefore() //並沒有insertAfter()

3)尋找

      getElementsByTagName()    //通過標籤名稱

      getElementsByName()    //通過元素的Name屬性的值(IE容錯能力較強,

      會得到一個數組,其中包括id等於name值的)

      getElementById()    //通過元素Id,唯一性

30、nullundefined的區別

null是一個表示"無"的對象,轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN。

當聲明的變數還未被初始化時,變數的預設值為undefined。

null用來表示尚未存在的對象,常用來表示函數企圖返回一個不存在的對象。

undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:

(1)變數被聲明了,但沒有賦值時,就等於undefined。

(2) 調用函數時,應該提供的參數沒有提供,該參數等於undefined。

(3)對象沒有賦值的屬性,該屬性的值為undefined。

(4)函數沒有傳回值時,預設返回undefined。

null表示"沒有對象",即該處不應該有值。典型用法是:

(1) 作為函數的參數,表示該函數的參數不是對象。

(2) 作為對象原型鏈的終點。

31、new操作符具體幹了什麼呢?

   1、建立一個Null 物件,並且 this 變數引用該對象,同時還繼承了該函數的原型。

   2、屬性和方法被加入到 this 引用的對象中。

   3、新建立的對象由 this 所引用,並且最後隱式的返回 this 。

var obj  = {};

obj.__proto__ = Base.prototype;

Base.call(obj);

32、什麼是JavaScript?(這是基本題,對很多程式員來說也是送分題!)

  JavaScript是用戶端和伺服器端指令碼語言,可以插入到HTML頁面中,並且是目前較熱門的Web開發語言。同時,JavaScript也是物件導向程式設計語言。

  類似的基本題目還包括:JavaScript都有哪些類型?JavaScript是誰發明的?......

33、列舉JavaJavaScript之間的區別?

Java是一門十分完整、成熟的程式設計語言。相比之下,JavaScript是一個可以被引入HTML頁面的程式設計語言。這兩種語言並不完全相互依賴,而是針對不同的意圖而設計的。 Java是一種物件導向編程(OOPS)或結構化程式設計語言,類似的如C ++或C,而JavaScript是用戶端指令碼語言,它被稱為非結構化編程。

 34、什麼是全域變數?這些變數如何聲明,使用全域變數有哪些問題?

  全域變數是整個代碼長度可用的變數,也就是說這些變數沒有任何範圍。var關鍵字用於聲明局部變數或對象。如果省略var關鍵字,則聲明一個全域變數。

  例:// Declare a global globalVariable = “Test”;

  使用全域變數所面臨的問題是本地和全域變數名稱的衝突。此外,很難調試和測試依賴於全域變數的代碼。

35、git fetchgit pull的區

git pull:相當於是從遠程擷取最新版本並merge到本地

git fetch:相當於是從遠程擷取最新版本到本地,不會自動merge

36、說說你對MVCMVVM的理

  MVC

View 傳送指令到 Controller

Controller 完成商務邏輯後,要求 Model 改變狀態

Model 將新的資料發送到 View,使用者得到反饋

所有通訊都是單向的。

Angular它採用雙向繫結(data-binding):View的變動,自動反映在 ViewModel,反之亦然。

組成部分Model、View、ViewModel

View:UI介面

ViewModel:它是View的抽象,負責View與Model之間資訊轉換,將View的Command傳送到Model;

Model:資料訪問層

37、attributeproperty的區別是什麼

attribute是dom元素在文檔中作為html標籤擁有的屬性;

property就是dom元素在js中作為對象擁有的屬性。

所以:

對於html的標準屬性來說,attribute和property是同步的,是會自動更新的,

但是對於自訂的屬性來說,他們是不同步的,

整理出來的前端js面試題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.