搜尋
首頁web前端js教程前端面試經驗總結

前端面試經驗總結

Feb 18, 2017 pm 02:19 PM
前端面試

今天的事今天做,分享麵筋,大家共同進步。面出了2身汗,加油。

有的部分忘了,想起啥寫啥,可能有點亂。

第一部分組長面

1.URL的結構

URI—Universal Resource Identifier通用資源標誌符

Web上可用的每種資源如HTML文件、每個影片、影片片段、程式片段等都是一個片段來URI來定位的
URI一般由三部組成
①訪問資源的命名機制
②存放資源的主機名
③資源本身的名稱,由路徑表示,著重強調於資源。

URL—Uniform Resource Location統一資源定位符

URL是Internet上用來描述資訊資源的字串,主要用在各種WWW客戶程式和伺服器程式上,特別是著名的Mosaic。
採用URL可以用一種統一的格式來描述各種資訊資源,包括檔案、伺服器的位址和目錄等。
URL一般由三部組成
①協定(或稱為服務方式)
②存有該資源的主機IP位址(有時也包括埠號)
③主機資源的具體位址。如目錄和文件名等

例子
URI = 作文
URL = 議論文、記敘文、詩歌…

那麼

1.寫的都不錯,不會說大家的「議論文」寫的不錯,雖然指的是一種東西。
2.客觀描述時,你會和同桌說:我今天寫的是“詩歌”,而不會囉嗦的說我今天用了詩歌的方式寫的作文。

同理

當你寫一篇技術文檔規範時,你會說某個參數要傳遞一個URI,而不必說某個參數要傳遞一個「URL格式的字串」。

前端面試經驗總結

  • Scheme://  協定部分,以:作為結束,常見的協定包含HTTP、HTTPS等

  • //: 層級URLLLL.等

  • //: 層級URLLLLL項

  • Login:password@:身份認證一般的協定都會使用預設的匿名形式進行資料取得
  • Address:伺服器位址一般是以網域名稱的形式存在
  • port:不同協定的預設埠連接埠號碼
  • /path/to/resource: 檔案路徑指向唯一確定的資源
  • ?query_string:查詢字串
  • /#fragment:ID 這部分內容不會被傳遞到伺服器一般用於頁面的錨,頁面下方返回頂部的按鈕就是利用這個實現的

2.遞歸

斐波那契數列,做過筆記的呀,就是不會遞歸,數據結構的不好,但是我迭代的方法沒問題啊1 1 2 3 5….

//递归的方法
function test(n){
  if(n<pre class="brush:php;toolbar:false">//迭代的方法
function test(n){
  var num1 = 1;
  var num2 = 2;
  var num3 = 0;
  for(var i=0;i<n-2 alert><h4 id="緊張啊-方法-寫的四不像">緊張啊,方法2寫的四不像</h4>
<p>3.瀏覽器發送請求到頁面加載完成,發生了什麼</p>
<p>由這個問題才引出問題1 ,自己給自己挖坑</p>
<ul class=" list-paddingleft-2">之前總結的不到位。 。再來<li><p></p></li>瀏覽器開啟線程,根據這個www/baidu.com的網域來找DNS伺服器,解析成對應的IP位址。例如解析成:http://www.php.cn/ :80/login.aspx<li><p></p></li>瀏覽器在解析到IP位址後,做的第二步就是對指定的URL進行HTTP封裝,把URL封裝成http封包瀏覽器把URL封裝成HTTP訊息後,第三步驟做的事情就是將這個HTTP請求訊息傳送到伺服器</ul>
<p></p>
<h5 id="註-瀏覽器是如何把http請求訊息傳送到伺服器的呢-頁面渲染過程中還會有請求發生麼-一定有其他請求發生的-調介面">(註:瀏覽器是如何把http請求訊息傳送到伺服器的呢?頁面渲染過程中還會有請求發生麼?一定有其他請求發生的。調介面</h5>
<p>下面是引用的</p>
<p>現在的前後端分離, 後端伺服器的角色更像是一個API Server, 接收請求並且只是以資料的形式返回, 而怎麼渲染和表現資料, 都交給更前端的表現層來做, 實現前後端的解耦</p>
<h4 id="盒模型">5.盒模型</h4>
<p>說了標準盒模型和怪異盒模型,常識也不說了</p>
<p>6.了解或使用MV*框架</p>
<p>用過backbone、</p>6.了解或使用MV*框架<h4></h4>用過backbone、 vue,說了angular和react。 <p>公司用的ant</p>
<h4 id="說了最近其他項目用webpack">說了最近其他項目用webpack,</h4>
<p>(1)熱加載</p>
<h4 id="檔案壓縮打包">(2)檔案壓縮打包</h4>
<p>问了webpack的基本配置,自己回答的:entery和output,感觉好浅薄。还是用的少,了解少的缘故吧</p>
<h5 id="webpack的常用配置">webpack的常用配置</h5>
<ol class=" list-paddingleft-2">
<li><p>entry:{} //加载模块的入口点</p></li>
<li><p>output:{}//打包文件的路径和名称</p></li>
<li><p>module:{}//那些加载器来处理那些文件</p></li>
<li><p>resolve:{}//设置模块的一些细节</p></li>
<li><p>plugins:[]//系统插件和扩展插件</p></li>
</ol>
<p><br></p>
<h4 id="使用的vue其他生态库">9.使用的vue其他生态库</h4>
<p>使用了 vue-router、vue-resource,了解vuex</p>
<p>由此引出问题10,11,12</p>
<h4 id="说说vue-router的原理-怎么实现路由的">10.说说vue-router的原理,怎么实现路由的</h4>
<p>平时做项目能正常跳转就可以了,没有想过路由怎么路由的,没答上来。。</p>
<p>SPA路由实现原理不知道面试官想得到的是不是类似这样的答案。</p>
<h4 id="vue的生命周期">11.vue的生命周期</h4>
<p><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/009/84caeb39dd29bbfbdf073d3d6cce090b-1.png?x-oss-process=image/resize,p_40" class="lazy" alt="前端面試經驗總結" ></p>
<h4 id="vue组件通信">12.vue组件通信</h4>
<p>父子组件通信的机制,传递数据使用prop属性</p>
<ul class=" list-paddingleft-2"><li><p>动态Prop</p></li></ul>
<p>用 <code>v-bind</code> 动态绑定 props 的值到组件的数据中。每当父组件的数据变化时,该变化也会传导给子组件。</p>
<pre class="brush:php;toolbar:false"><p>
  <input>
  <br>
  <child></child>
</p>

<child></child>
  • 单向数据流

prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。

通常有两种改变 prop 的情况:

  1. prop 作为初始值传入,子组件之后只是将它的初始值作为本地数据的初始值使用;

  2. prop 作为需要被转变的原始值传入。

13.说说JSONP的实现原理

JSONP : JSON with Padding

(1)script标签 src属性可以访问外部资源

(2)用script标签加载资源是没有跨域问题的

在资源加载进来之前定义好一个函数,函数接受一个参数,函数中包含 实现逻辑(要做什么事)

通过script标签加载远程文件资源,当远程文件被加载进来时,执行当前定义好的函数,数据就是函数传入的参数

14.职业规划

求职定位,到底想干啥?

第二部分领导面

每一点都非常深入。

1.css盒模型

  • 标准盒模型和怪异盒模型不再重复

  • box-sizing属性:content-box:标准盒模型,border-box:怪异盒模型

  • 行内元素同样具有盒模型


A.任何元素都可以设置border
<!-- 行内元素可以设置border 设置宽高无效-->
<span>haha</span>

前端面試經驗總結

B.行内元素设置padding,margin 上下是无效的,左右是有效的
<!-- 行内元素设置padding、margin-->
<p>
    <span>1782</span>
    </p><p>
        woship
    </p>
![Snip20170211_5](/Users/shenyuanyuan/Desktop/Snip20170211_5.png)

前端面試經驗總結

行内元素的padding-top、padding-bottom从显示的效果上是增加的,但其实设置的是无效的。并不会对他周围的元素产生任何影响。

  • 黄色内边距5px

  • 左边黄色距离蓝色20px

  • 上下虽然显示padding,但是padding并没有影响其他元素

2.position定位

(1)position的属性有哪些?默认的是什么?

默认值:static

属性有5个分别是:relative、absolute、fixed、inherit、static

(2)例子考察

父元素p :width:500px;height:200px;position: static|absoluta|relative|fixed。 position分别取值,子元素怎么定位?

子元素p:width:200px;height:200px;position:absolute

<!-- 父元素默认static-->
<p>
    </p><p>
    </p>
    <p>
    </p>


<br>
<!-- 父元素默认relative-->
<p>
    </p><p>
    </p>
    <p>
    </p>

<br>
<!-- 父元素默认fixed-->
<p>
    </p><p>
    </p>
    <p>
    </p>

<!-- 父元素默认absolute-->
<p>
    </p><p>
    </p>
    <p>
    </p>

前端面試經驗總結

发现:子元素绝对定位,按照除了属性为 static以外的第一个父元素定位。所以父元素设置为:absolute、relative、fixed,子元素定位表现一致;

(3)例子考察(事实证明,面试官这道题也错了)

如果子元素设置margin、border、padding呢?子元素左上角的点以margin、border、还是padding定位

<p>
    </p><p>
    </p>
    <p>
    </p>

<br>
<!--  最原始-->
<p>
    </p><p>
    </p>
    <p>
    </p>

<br>
<!--  最原始:添加margin-->
<p>
    </p><p>
    </p>
    <p>
    </p>

<br>
<!--  最原始:添加padding-->
<p>
    </p><p>
    </p>
    <p>
    </p>

<br>
<!--  最原始:添加botder-->
<p>
    </p><p>
    </p>
    <p>
    </p>

前端面試經驗總結

RunJS上边分享的代码

3.BFC(块级格式化上下文)

  • 清除遮挡

    <p></p>
    <p>    </p>
    .left {
    width: 100px;
    height: 100px;
    background: red;
    float: left;
    }
    .right {
    height: 200px;
    background: yellow;
    overflow:hidden;//属性清楚遮挡
    }
  • 关闭浮动

  • 解决垂直双边距问题

    <p>
        </p><p>    
        </p>
        <p></p>
    


BFC的作用

http://www.php.cn/

4.flex(css3新特性)

<p>
  </p><p></p>
    <p></p>
    <p></p>
    <p></p>
    
.container {
  display: flex;
  flex-flow: row;
    width:300px;
    height:100px;
    background:gray;
    justify-content:space-around
}
.box {
  width: 20px;
    background:yellow;
    height:20px;
}

前端面試經驗總結

flex参考1

flex参考2

在线例子:http://www.php.cn/

5.JS原型和原型链

个人觉得讲的很好的js原型、原型链

原型链

function Foo(){
}
var a = new Foo();//new的操作做了什么
var a = new Object()
a.__proto__ = Foo.prototype
Foo.call(a)

6.闭包

闭包:当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。

function a(){
  var i=0;
  function b(){
     alert(i);       
  }       
  return b;   
}   
var c = a();   
c();

7.http

请求头字段和状态码

前端面試經驗總結

http状态码

8.数组去重算法(时间/空间复杂度)

数组去重

时间复杂度空间复杂度也不会啊。

X.说说你做前端的优势

除了技术,这个也问?感觉没啥优势,优势是移动端经验相对多一点

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
從C/C到JavaScript:所有工作方式從C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能