『壹』 linux經常問的面試題有哪些
1、如何查看系統內核的版本
這里有兩種方法:
1) uname -a
uname 這個命令是用來列印系統信息的, -a 可以列印系統所有信息,其中包含內核版本,比如我的版本號是3.10.0-957.21.3.el7.X86_64。
2)使用 ss 命令
現在也有很多人用 ss 命令,ss 一般用於轉儲套接字統計信息。它還可以顯示所有類型的套接字統計信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。這里可以用 ss -lntpd
7、如何查看某個進程對 CPU 的使用情況
1) 可以使用 top 命令
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。
2) 使用 ps 命令
ps aux 可以顯示所有使用者的進程,最常用的方法是ps aux,然後再利用一個管道符號導向到grep去查找特定的進程。比如查看nginx 進程可以用
18、Linux里如何來做掛載
這里主要考的是 mount 命令,用於掛載Linux系統外的文件。
只輸入 mount命令可以查看所有系統已經掛載的文件。
如果想掛載一個新的文件,比如將 /dev/hda1 掛在 /mnt 之下,可以用
19、如何查看一些你不太熟悉的命令
這里要考大家的是使用 man 命令。對某個 Linux的命令不熟悉,可以用 man <命令 >,系統會返回該命令的一個非常詳細的手冊,來幫助大家使用。
『貳』 伺服器硬體面試問什麼
1、用邏輯們和cmos電路實現ab+cd。
2、用一個二選一mux和一個inv實現異或。
3、給了reg的setup,hold時間,求中間組合邏輯的delay范圍。
4、如何解決亞穩態。
5、用verilog/vhdl寫一個fifo控制器。
6、用verilog/vddl檢測stream中的特定字元串。
『叄』 程序員面試的時候考官一般問什麼問題(比較流行的)
給你提供點參考信息,希望能幫助到你:
1、使用相同的工具和時間限制模擬面試訓練
Google和微軟都會讓應聘者在白板上手工解答編程問題,但通常大部分的應聘者都是習慣於在電腦上利用編程工具系統編寫程序。因此面試的時候,某些應聘者離開了熟悉的電腦游標,站在白板前感覺手足無措不知該如何起行。又或者他們不習慣在編程之時旁邊有人觀看,這會讓他們感到緊張而無法正常思考。
在現實生活中,如果你想要橫渡英吉利海峽,自然不能總是在室內游泳池練習。你必須投身於大海在波濤之中訓練,在准備面試的時候也是如此。
在面試開始之前你最好向招聘單位詢問面試形式和面試問題。如果招聘單位讓你在某個房間考試且僅提供沒有匯編程序的編輯器,那麼就應該在家中按照這種情景進行練習。如果招聘公司單位讓你在白板上回答問題並會安排考官在旁監督,那麼你就要找一位軟體工程師來扮演考官配合你練習。即使找來的考官經驗不如你也沒有關系,他們依然能幫助你消除在他人面前出錯所帶來的緊張感,這樣可以讓你適應有人在旁邊盯著看的面試氛圍。
如果你恰巧認識我並希望由我來幫你聯系,那我的條件就是必須請我吃飯:如果你已經工作了就吃日本壽司大餐;如果你還是學生,那麼吃比薩餅也可以。
2、在面試過程中不要對細小錯誤耿耿於懷
我曾不止一次的在面試過程中碰到這種情況:當應聘者知道編程問題後,他馬上就想到了最佳的方案、確定了邊界條件,然後開始編寫程序。但在編寫過程中,應聘者犯了諸如首先檢查是不是操作順序錯誤或忘記設定某變數等無關大局的小錯誤,當我指出其錯誤之後,應聘者立刻變得十分緊張,這種焦慮情緒影響了他在後面環節的正常發揮。
其實這種恐懼心理完全不必要。一名優秀的程序員在編程過程中出現錯誤也是很正常的,就像是小提琴手在演奏高難度的巴赫交響樂時也會偶爾失誤。音樂會的聽眾可能會覺察到這些錯誤,但是聽眾絕對不會因為這種細小失誤就把出色的小提琴手看作是門外漢。
即便應聘者徹底搞砸了某個編程問題,面試考官也可能會提出不同的問題並會容忍應聘者在某個問題上的失誤。再退一步說,就算某次面試徹底失敗,你也有機會在其它面試上補救。
我的一位同事(一個項目的技術負責人)最近面試了一個人,在開始面試時他覺得面試者的交流方式存在問題,因此開始表現的相當不友好。但經過了整個面試過程後,面試者證明了自身的能力,而我的那位同事也成了那位面試者最堅定的支持者。在過去的一年中,我從未見過這位同事如此強烈的支持哪位面試者。
所以,因此就算面試進展不順,也務必堅持到底不要放棄。
『肆』 在國企面試中,計算機維護崗位面試會問什麼
不管是企業單位還是事業單位,計算機維護崗位的崗位職責和技術要求是一樣的,所以在考試或面試時,都會涉及到以下問題:
一、自我介紹,然後簡單介紹自己的優點和特長。 命題意圖:考查語言表達能力以及能否全面、客觀地評價自己。
二、如果被錄用為計算機維護人員,將如何開展工作?
命題意圖:考查計劃組織能力
答案要點:1、正確認識自己的角色和職責,制定適宜的工作計劃;2、增強責任心,認真開展計算機維護工作。一是對整個單位的計算機系統的安全性進行檢查;二是定期開展伺服器維護,操作系統、網路系統的安全補丁、漏洞檢測及修補、病毒防治等工作;3、實時監控整個區域網的運轉,掌握與外部網路的連接配置,發現問題及時解決;4、積極協助各部門解決計算機使用過程中遇到的技術問題;嚴格恪守保密制度,不得擅自泄露各種信息與資料。
三、什麼是計算機病毒,如何有效地防治?
命題意圖:考查專業技術能力
答案要點:計算機病毒是編制或者在計算機程序中插入的破壞計算機功能或者破壞數據,影響計算機使用並且能夠自我復制的一組計算機指令或者程序代碼被稱為計算機病毒(Computer Virus)。具有破壞性,復制性和傳染性。
防治:1. 提高計算機用戶的病毒防範意識;2.安裝防火牆以及病毒監控軟體,並且經常更新和升級這些軟體;3.經常查找操作系統及其他系統軟體的漏洞,並且經常更新和升級這些軟體;4.經常用殺毒軟體全面掃描計算機的所有硬碟分區,查找潛伏的病毒,特別是對移動存儲設備,在連接到計算機後首先就是進行病毒掃描。5.不要瀏覽不健康的網站並且從上面下載內容;6.不要打開那些來歷不明的電子郵件;7.定期備份數據
四、簡述網路的功能,網上鄰居和瀏覽器有什麼不同。
命題意圖:考查專業技術能力
答案要點:計算機網路的基本功能是實現計算機之間的通信和資源共享。資源共享有細分為硬體共享、軟體共享、判據共享。 網上鄰居在計算機連接到網路後可以顯示計算機所連接的網路上的所有計算機、共享文件夾、列印機的資源從而使得本地計算機可以和其他計算機進行通信以及使用網路上其他計算機的共享資源。瀏覽器即WEB客戶端程序,WEB文檔在客戶端被瀏覽器解釋成網頁頁面,用戶要瀏覽WEB頁面必須在本地計算機上安裝瀏覽器軟體。
希望我的回答可以幫到您哦
『伍』 2020年Web前端面試題匯總(一)
今天小編要跟大家分享的文章是關於2020年Web前端面試題匯總。由於內容較多小編分開為大家介紹,今天首先來和小編一起看一看第一部分的內容,希望這些面試題能夠對正准備找Web前端相關工作的小夥伴們有所幫助。
1.說幾條寫javaScript的基本規范?
1)不要在同一行聲明多個變數;
2)請使用===/!==來比較true/false或者數值;
3)使用對象字面量替代newObject這種形式;
4)減少使用全局函數,全局變數;
5)switch語句必須帶有default分支;
6)if語句必須使用大括弧;
7)for-in循環中的變數;
應該使用var關鍵字明確限定作用域;
從而避免作用域全局污染。
2.說說平衡二叉樹?
平衡二叉搜索樹(Self-balancingbinarysearchtree)
又被稱為AVL樹。
具有以下性質:
1)它是一棵空樹或它的左右兩個子樹
的高度差的絕對值不超過1,
並且左右兩個子樹都是一棵平衡二叉樹。
2)平衡二叉樹必定是二叉搜索樹,反之則不一定。
3)平衡二叉樹的常用實現方法有紅黑樹、AVL、
替罪羊樹、Treap、伸展樹等。
最小二叉平衡樹的節點的公式如下:
F(n)=F(n-1)+F(n-2)+1備註:1是根節點,
F(n-1)是左子樹的節點數量,
F(n-2)是右子樹的節點數量。
3.清除浮動和解決垂直外邊距重疊的解決方案?
問題描述:
1)父元素沒有設置寬高,尺寸由子元素撐起;
子元素一旦浮動,父元素高度會發生塌陷。
2)子元素設置margin-top會作用的父元素的margin-top;
此時會造成垂直外邊距重疊。
.clearfix::after,.clearfix::before{
content:''
display:table;
clear:both;
}
4.sessionStorage、localStorage和cookie?
相同點:
都用於瀏覽器端存儲的緩存數據;
不同點:
1)存儲內容是否發送到伺服器端
當設置了Cookie後,數據會發送到伺服器端,
造成一定的寬頻浪費;xxxstorage則會將數據保存
到本地,不會造成寬頻浪費;
2)數據存儲大小不同
Cookie數據不能超過4K,適用於會話標識;
xxxstorage數據存儲可以達到5M;
3)數據存儲的有效期限不同
cookie只在設置了Cookid過期時間
之前一直有效,即使關閉窗口或者瀏覽器;
sessionStorage,僅在關閉瀏覽器之前有效;
localStorage,數據存儲永久有效;
4)作用域不同
cookie和localStorage是在同源同窗口中
都是共享的;
sessionStorage不在不同的瀏覽器窗口
中共享,即使是同一個頁面;
5.判斷一個單詞是否是迴文?
迴文是指把相同的詞彙或句子,
在下文中調換位置或顛倒過來,
產生首尾回環的情景,
叫做迴文,也叫回環。
比如cacac,redivider。
letcheckPalindrom=(str)=>{
returnstr===
str.split('').reverse().join('');
}
6.不藉助臨時變數,進行兩個整數的交換?
輸入a=3,b=1,
輸出a=1,b=3
letswap=(a,b)=>{
b=b-a;
a=a+b;
b=a-b;
return[a,b];
}
7.請寫出至少5個html5新增的標簽,並說明其語義和應用場景?
section:定義文檔中的一個章節;
nav:定義只包含導航鏈接的章節;
header:定義頁面或章節的頭部;
它經常包含logo、頁面標題和導航性的目錄。
footer:定義頁面或章節的尾部;
它經常包含版權信息、法律信息鏈接和反饋建議用的地址。
aside:定義和頁面內容關聯度較低的內容,
如果被刪除,剩下的內容仍然很合理。
8.get和post請求在緩存方面的區別?
get請求類似於查找的過程,用戶獲取數據,
可以不用每次都與資料庫連接,所以可以使用緩存。
post不同,post做的一般是修改和刪除的工作,
所以必須與資料庫交互,所以不能使用緩存。
因此get請求適合於請求緩存。
9.如何解決非同步回調地獄?
promise、generator、async/await
10.圖片的懶載入和預載入?
預載入:提前載入圖片,
當用戶需要查看時可直接
從本地緩存中渲染。
懶載入:懶載入的主要目的
是作為伺服器前端的優化,
減少請求數或延遲請求數。
兩種技術的本質:
兩者的行為是相反的,
一個是提前載入,
一個是遲緩甚至不載入。
懶載入對伺服器前端有一定
的緩解壓力作用,
預載入則會增加伺服器前端壓力。
11.bind,apply,call的區別?
通過apply和call改變函數的this指向,
這兩個函數的第一個參數都是一樣的,
表示要改變指向的那個對象,
第二個參數,apply是數組,
而call則是arg1,arg2...這種形式。
通過bind改變this作用域
會返回一個新的函數,
這個函數不會馬上執行。
12.js怎麼控制一次載入一張圖片,載入完後再載入下一張?
方法一:
varobj=newImage();
obj.src="#/21.jpg";
obj.onload=function(){
document.getElementById("pic")
.innnerHTML="
}
『陸』 運維工程師面試:給你1000台伺服器,你將如何管理面試官最想得到的答案是什麼
應該沒有標准答案,主要是看你的邏輯思維。1000台有主次的吧,要成幾類,哪些需要經常維護的,哪些是需要幾天幾周或幾月維護的。主要是你給出一個邏輯性強的,相對完整的方案,這沒有標準的,你連自已都不滿意的答案,面試官肯定也不滿意了。1000台你想想可能是讓你一個人管理嗎,是給你配備多少人,還是讓你一個人具體去維護,要把前題問清,或你假定一定的條件,提出你的一個設想性方案。就OK了~~
『柒』 2020年Web前端面試題及答案匯總
今天小編要跟大家分享的文章是關於2020年Web前端面試題及答案匯總。正准備參加Web前端面試的小夥伴們來和小編一起看一看吧,希望本篇文章能夠對大家有所幫助。 『捌』 面試網路維護工程師會被問到哪些問題 -物理層 物理層定義了設備介面上的一些電子電氣化的標准,比如RJ45介面,光纖介面。傳輸介質雙絞線,無線,光,電。等 --數據鏈路層 二層定義了一個重要的表示,MAC地址,准確的說他必須在一個LAN內是唯一的。他又48位的十六進制組成,前24位是廠商表示,後24位 是廠商自定義的序列號。有時候 MAC地址就是表示了一個設備的位置。 --網路層 網路層是用來邏輯上選路定址的,這一層最重要的一個協議就是IP協議。基於ip 又分為 ARP,RARP,ICMP,IGMP等 --傳輸層 這一層定義類了 兩個重要的協議 TCP和UDP 。還有就是埠號的概念。這一層關聯的是一個主機上的某個程序或者是服務。比如 tcp 80 的web服務 udp 4000的QQ 程序等。 --會話層 主要作用是建立會話和管理會話。我一般這樣理解 會話的 比如 telnet 一台主機,是一次會話的鏈接。打開網路的網頁,就和網路的伺服器建立了一次會話。 --表示層 因為底層傳輸的是二進制,應用層無法直接識別。所以根據這一層的名字可以直接理解為他是一個翻譯。比如把一長串的數據「翻譯」成rmvb格式,交給上層的 快播 這個程序,把另一串數據「翻譯成」MP3格式交給 音樂播放器。其實這一層的工作很多。 --應用層 為用戶提供了一個可以操所的界面,如windows的桌面化或UNIX的字元界面。 OSI七層的每一層是獨立工作的,但是層與層之間是相互「合作」「兼容」的關系。 1.2 [三層交換和路由器的不同] 雖說三層交換機和路由器都可以工作在三層,但本質上還是有所區別。 一 在設計的功能上不同 現在有很多的多功能路由器,又能實現三層的路由功能,包括NAT地址轉換。有提供了二層的埠,有的還配置了無線功能。再有就是還具備防火牆的功能。但是你不能它單獨的劃分為交換機或者是防火牆吧。只能說是個多功能的路由器。防火牆二層交換只是他的附加功能。三層交換也一樣,主要功能還是解決區域網內數據頻繁的通信,三層功能也有,但不見得和路由器差很多。 二 應用的環境不同 三層交換的路由功能比較簡單,因為更多的把他應用到區域網內部的通信上,主要功能還是數據的交換 路由器的主要功能就是選路定址,更適合於不同網路之間,比如區域網和廣域網之間,或者是不同的協議之間。 三 實現方式不同 路由器能夠實現三層的路由(或轉發) 是基於軟體的實現方式,當收到一個數據包要轉發的時候,要經過查看路由表,最長匹配原則等一系列復雜的過程最終實現數據包的轉發,相比三層交換效率略低。而三層交換是基於硬體的方式實現三層的功能,他成功轉發一個數據包後,就會記錄相應的IP和MAC的對應關系,當數據再次轉發是根據之前的記錄的表項直接轉發。這個過程成為「一次路由,多次交換」。 總之,三層交換和路由器的最大區別是路由器可以基於埠做NAT,而三層交換機不能。路由器直接接入光纖可以直接上網,而三層交換機不能。主要是三層交換機的每一個介面都有專有的MAC地址和特定的ASIC集成電路。 . 1.3 [靜態路由和動態路由的區別] 靜態路由特點 靜態路由是管理員手工配置,精確。但是不夠靈活,是單向性的。考慮到靜態路由穩定,節省資源(內存,cpu,鏈路帶寬)。在網路TOP不是很大的環境中常用。 動態路由的特點 動態路由的好處就是路由器本身通過運行動態路由協議來互相學習路由條目,在大型的網路環境中,一定程度上減少了工程師的工作量。動態路由協議分為很多種,IGP和EGP,IGP中根據工作的原理分為鏈路狀態型和距離矢量型的。但是不管哪一種動態協議,他都要經過以下幾個過程。 1.「說話」 向其他的路由器發送路由信息 2.「收聽」 接收其他路由器發來的路由信息 3.「計算」不同的動態路由協議有不同的演算法,每種路由協議通過自己特有的演算法把收到的路由信息計算,得出最好的路由條目,載入到路由表中。 4.「維護」 維護路由表,當TOP發生變化的時候,及時的更新自己的路由表,並發送變更的消息 在生產環境下,應當更具不同的網路規模,選擇不同的路由協議。 1.4 [描述一下ACL和NAT] ACL:acl訪問控制列表是用來制定規則的一種機制。他用來告訴路由器那些數據包訪問那些資源是允許的,那些是拒絕的。他可以分為兩種方式,一是標準的訪問控制列表,只能基於源地址進行限制。而是擴展的訪問控制列表,他不僅可以基於源地址和目標地址進行過濾,還可以根據埠來進行限制。ACL的工作原理就是讀取數據包的三層和四層,和訪問控制列表中的條目進行匹配,如有相符的,直接按照策略(允許或拒絕),不在往下匹配。如沒有匹配的條目則按照默認規則。 NAT:nat網路地址轉換,是為了解決ipv4地址空間不足產生的。 Nat的原理就是替換掉數據包中的源ip+埠或目標ip+埠,以達到私有地址不能再公網上傳播的這種情況,或者是區域網中伺服器的發布。Nat一定程度上提高了區域網用戶的安全性。 實現方式大概可以分成 靜態NAT,動態NAT PAT(埠復用) 1.5 [描述一下VLAN] VLAN 是為了避免二層出現廣播風暴給大面積用戶帶來影響,所採取的一種手段。 Vlan 帶來的好處 減少廣播風暴 提高一定的安全 簡化網路的管理,有易於故障排查 Vlan 是把區域網進行邏輯上的分割,實現方式有兩種 1.靜態vlan 基於埠的vlan (常用) 2.基於MAC地址的vlan (適合於移動用戶) Vlan之間的通信需要配置TRUNK鏈路(中繼) 封裝模式有兩種 Isl 思科私有的技術,在數據幀的頭部和尾部添加30位元組的標示符 Dot1q 通過 在mac地址後面打標記的方式 標識vlan 共4個位元組 公有協議 1.6 [RIP和OSPF的區別] 兩者都屬於IGP協議,rip是典型的距離矢量動態路由協議。Ospf是鏈路狀態型的協議 Rip是整張路由表進行廣播更新(v2是組播),學習未知的路由條目,有存在環路的情況 並且沒有鄰居表,網路收斂速度比較慢。因為有環路的缺陷,不適合較大的網路使用。 Ospf組播更新,並且只有TOP發生變化的時候才出發更新,把收到更新的路由會放置在LSDB中,並生成路由。Ospf本身沒有環路的產生,並且是有分層的結構,而rip是平面的沒有層次化。所以ospf比rip收斂速度快。在NBMA網路中還會有DR和BDR的概念,促進了ospf的收斂。 Rip 管理距離 120 ospf 管理距離 110 1.7 [解釋以下術語的意思] LAN 本地區域網 WAN 廣域網 VLAN 虛擬區域網 WLAN 無線區域網 VPN 虛擬專用網 AD 管理距離,用來衡量不同路由協議生成去往同一目標的可信值 Metric 度量值,用來判斷同一種路由協議生成去往同一目標的優先順序 1.8 [簡述一下stp是什麼] Stp 生成樹協議。 一個良好的網路應該要考慮到鏈路的冗餘,比如二層的交換機做冗餘,來防範單點故障帶來的問題。但是二層做冗餘的話會帶來一些問題: 1.廣播風暴,因為二層對未知數據幀的處理是進行廣播,而且二層的封裝結構又不像三層那樣有TTL 的機制來防護。所以一旦廣播風暴產生,其他的交換機就會跟著廣播,造成鏈路的堵塞癱瘓。 2.MAC地址的重復。因為二層的工作原理,會造成交換機對一個MAC的多次重復的去學習,造成不必要的資源浪費,直到設備癱瘓 3.MAC地址表的不穩定,因為要重復去學習一些地址。造成轉發效率緩慢。 二層環路帶來的後果是嚴重的 ,stp協議就是在冗餘的環境下,邏輯上去DOWN掉一個借口,打破環路的產生,同時做到冗餘。當環境變化時,會自動跳轉down的介面。 1.9 [STP計算的過程] 1.選擇根網橋 2.選擇根埠 3.選擇指定埠 4.指定阻塞埠 2.0 [描述一下HSRP] 熱備路由協議 是Cisco私有的網關冗餘協議。它是由一組路由器(最低2台)構成的一個熱備組 作用是為用戶提供一個不間斷的網關ip,用戶通過這個ip訪問互聯網,即使真實的網關設備DOWN掉一台,也不會影響客戶的正常工作。 原理: 熱備組中包含4中路由器的角色, 活躍路由器:負責承載發往虛擬ip地址的流量,是真正轉發用戶數據流量的路由器, 同時向UDP1985發送hello包 表明自己的狀態,一個組中只有一台 備份路由器:監聽整個HSRP組的狀態,是成為下一個活躍路由器之前的狀態,一個組中只有一個 同時向組中發送 其他路由器:靜聽整個HSRP組的狀態,是備份路由器的候選者 虛擬路由器:為客戶端提供一個虛擬的ip和MAC 能夠然活躍路由器轉發。 當活躍路由器Down後 備份路由器收不到hello包 就會成為活躍路由器。而這個轉換的過程用戶是感覺不到的。 『玖』 去面試網路管理員,面試官會問哪些問題專業和非專業的
問題一:「請你自我介紹一下」
一、MySQL資料庫
1.MySQL中varchar與char的區別以及varchar(50)中的50代表的涵義?
答案:
Varchar是變長字元串,最多存儲的大小是65535位元組,查詢速度相對較慢;Char
是定常字元串,最多存儲的大小是255位元組,查詢速度相對較快;
varchar(50)表示:Mysql4.0表示存放50個位元組,5.0存放50個字元。
2.簡述瀏覽器打開#顯示頁面,中間都經過哪些過程?
答案:
向DNS伺服器獲取域名對應的IP地址並返回瀏覽器,通過IP地址向Web伺服器發請求,Web伺服器從文件伺服器獲取網頁中所需要的文件,從資料庫伺服器獲取網頁中所需要的數據,最後講完整的網頁相應給瀏覽器。
3.如何解決MySQL中存儲中文亂碼問題?
答案:
腳本文件採用UTF8編碼
客戶端連接資料庫使用UTF8編碼
伺服器端創建資料庫使用UTF8編碼
4.Float和Double的區別是什麼?
答案:
FLOAT(單精度浮點數)類型數據可以存儲至多8位十進制數,並在內存中佔4位元組。
DOUBLE(雙精度浮點數)類型數據可以存儲至多18位十進制數,並在內存中佔8位元組。
5.把數據id等於1的名字oldboy更改為oldgirl?
答案:
updatetestsetname='oldgirl'whereid=1;
6.如何登錄mysql數據?
答案:
mysql-uroot。
二、JS基礎
1.continue和break有什麼區別?
答案:
break和continue都是用來控制循環結構的:
break終止循環,跳出循環體執行循環後面的語句。
continue跳過本次循環,執行下一次循環。
2.i++和++i的區別?
答案:
i++:先用i值後加1,
++i:先加1後用i值,
計算:varn=5;求varnum=n+++++n+n+++++n+n;//37
3.JavaScript都有哪些數據類型?
答案:
原始類型:數值型/字元串型/布爾型/undefined/null
引用類型:對象
4.自調用函數是什麼?用於什麼地方?
答案:立即執行的函數。(function(){//函數體})();
用於創建一個局部作用域。
5.slice和splice有什麼區別?
答案:
slice截取子數組,從指定的數組中,截取幾個連續的元素組成一個新數組
splice允許從指定數組中,刪除一部分元素,同時再添加另一部分元素
6.typeof返回的類型有哪些?
答案:
number、string、boolean、undefined、object、function
ex:
vararr=[1,2,3,4,5];
console.log(typeof(arr));//object
functionmyDemo(){
returnfunctiontest(){};
}
console.log(typeof(myDemo()));//function
7.取1~11之間的隨機數(即包括1不包括11)?
答案:
Math.floor(Math.random()*10+1)
parseInt(Math.random()*10+1)
8.什麼是變數聲明提前?
答案:
使用var關鍵字聲明的變數,會將聲明提升到所在作用域的最前邊。。
9.push、pop、shift和unshift區別?
答案:
這兩組同為對數組的操作,並且會改變數組的本身的長度及內容。
不同的是push()、pop()是從數組的尾部進行增減,unshift()、shift()是從數組的頭部進行增減。。
10.例舉4種強制類型轉換和3種隱式類型轉換?
答案:
強制轉換:parseInt/parseFloat/Number/toString
隱式轉換:
字元串+數值數值轉字元串
數值+布爾型布爾型中true轉為1,false轉為0
字元串+布爾型布爾型轉為字元串。
11.函數聲明與函數表達式的區別?
答案:
相同點:兩者都可以創建函數。
不同點:函數聲明可以存在函數提升(前),函數表達式不存在函數提升(前)。
//函數聲明
functionmyFunction(){
functioninnerFunction(){}
}
//以下為函數表達式
varmyFunc=function(){};
myFunc(function(){
returnfunction(){};
});
12.請指出JavaScript宿主對象和原生對象的區別?
答案:
宿主對象:指JavaScript解釋器提供的對象,由解釋器廠家自定義並提供實現,不同的解釋器提供的擴展對象存在較大的差異(DOM和BOM對象)。
原生對象:JavaScript語言本身預定義的對象,在ECMAScript標准中定義,由所有的解釋器廠家來提供具體實現(Array,Date,Math,Number,String,Boolean等)。
13.js中有哪些內置函數?
答案:Object,Array,Boolean,Number,String,Function,Date,Math,RegExp,
Error,Global
14.列舉出獲取日期相關函數
答案:
console.log(Date.now());//返回當前日期和時間/01/0100:00:00'之間的毫秒值
vardt=newDate();//獲取當前時間---年月日時分秒
console.log(dt.getTime());//返回當前日期和時間/01/0100:00:00'之間的毫秒值
console.log(dt.getFullYear());//年份
console.log(dt.getMonth()+1);//月份(0-11)
console.log(dt.getDate());//日期(0/1-31)
console.log(dt.getDay());//星期(0-6)
console.log(dt.getHours());//小時(0-23)
console.log(dt.getMinutes());//分鍾(0-59)
console.log(dt.getMilliseconds);//返回毫秒(0-999)
console.log(dt.getSeconds());//秒(0-59)
15.Math相關函數
答案:
Math.random()-返回0~1之間的隨機數
Math.abs(x)-返回數的絕對值
Math.ceil(x)-向上取整
Math.floor(x)-向下取整
Math.round()四捨五入
Math.max()和Max.min()獲取一組數據中的最大值和最小值
Math.PI獲取圓周率π的值Math.pow()獲取一個值的多少次冪
Math.sqrt()對數值開方
Math.pow(10,2)=100;
Math.sqrt(100)=10;
16.null和undefined的區別?
答案:
undefined是訪問一個未初始化的變數時返回的值,
null是訪問一個尚不存在的對象時所返回的值。因此,可以把undefined看作是空的變數,而null看作是空的對象。
17.==和===有什麼不同?
答案:
==抽象相等,比較時,會先進行類型轉換,然後再比較值;
===嚴格相等,判斷兩個值相等同時數據類型也得相同。
18.setTimeout和setInterval的區別是什麼?
答案:
二者都是用來設置定時操作的。
setTimeout:設置一個定時器,在定時器到期後執行一次函數或代碼段
setInterval:設置一個定時器,以固定的時間間隔重復調用一個函數或者代碼段
19.請說出以下代碼執行結果
for(vari=0;i<3;i++){
setTimeout(function(){
console.log(i);
},0);
console.log(i);
}
答案:012333,執行過程如下
vari=0;
console.log(i);i++;
console.log(i);i++;
console.log(i);i++;
setTimeout(function(){console.log(i);
},0);s
etTimeout(function(){
console.log(i);
},0);
setTimeout(function(){
console.log(i);
},0);//輸出012333
20.請說出(true+flase)>2+true的執行結果
答案:false
21.當前代碼塊輸出結果是什麼?
varz=10;
functionfoo(){console.log(z);}
(function(funArg){varz=20;funArg();})(foo);
答案:10,自調用函數。
22.setTimeout(function(){},10)表示什麼意思?
答案:每隔10毫秒調用一次函數。
23.程序中捕獲異常的方法?
答案:
try{
}catch(e){
}finally{
}
24.以下代碼執行結果?
varuname='jack'
functionchange(){
alert(uname)//?
varuname='lily'
alert(uname)//?
}
change()
答案:undefinedlily
25.如何使用npm下載express模塊?
答案:npminstallexpress
26.split和join的區別?
答案:split()將字元串按照指定的字元分割成一個數組,並返回
join()將數組用指定的字元連接成一個字元串,並返回
27.看下列代碼會有什麼樣的輸出?
varfoo="11"+2-"1";
console.log(foo);
console.log(typeoffoo);
答案:111number
28.foo=foo||bar,這行代碼是什麼意思?為什麼要這樣寫?
答案:這種寫法稱之為短路表達式
相當於:
varfoo;
if(foo){
foo=foo;
}else{
foo=bar;
}
常用於函數參數的空判斷
29.用js實現隨機選取10_100之間的10個數字,存入一個數組,並排序
答案:
functiongetRandom(istart,iend){
variChoice=iend-istart+1;
returnMath.floor(Math.random()*iChoice+istart);
}variArray=[];
for(vari=0;i<10;i++){
varresult=getRandom(10,100);
iArray.push(result);
}iArray.sort();
30.如何獲取javascript三個數中的最大值和最小值?
答案:Math.max(a,b,c);//最大值
Math.min(a,b,c)//最小值
31.實現冒泡排序?
vararray=[5,4,3,2,1];
vartemp=0;
for(vari=0;i
for(varj=0;j
if(array[j]>array[j+1]){
temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
三、NODEJS
1.同步和非同步有何區別?
答案:
同步:指發送一個請求,需要等待返回,然後才能夠發送下一個請求,有等待過程(在一個任務進行中時不能開啟其他的任務)。
非同步:指發送一個請求,不需要等待返回,隨時可以再發送下一個請求,即不需要等待(在一個任務進行中時可以開啟其他的任務)。
2.NodeJS中有哪些類型模塊,文件操作用哪一個模塊?
答案:
模塊類型:核心模塊、自定義模塊、第三方模塊。
文件操作:fs模塊
3.對NodeJS的優點和缺點提出自己的看法?
答案:CPU密集型任務的特點是進行大量的計算,消耗CPU資源,比如計算圓周率(上千位)、對視頻進行編碼等,全靠CPU的運算能力
(一般用C語言,java)IO(Input/
Output)密集型任務,這類任務的特點是CPU消耗很少,大部分時間都在等待IO操作。常見的大部分任務都是IO密集型任務,比如Web應用(一般用腳本語言:python/Nodejs)。Nodejs設計思想中以事件驅動、非同步、非堵塞I/O密集型為核心,他提供的大多數api都是基於事件的、非同步的風格。所以非常適合處理高並發請求。此外,與Node伺服器交互的客戶端代碼是由js語言編寫的,因此客戶端和伺服器端都用同一種語言編寫,減少了成本。
4.使用NodeJS完成登錄功能(編寫HTML頁面和路由介面中的代碼)?
答案:
HTML頁面:
用戶:
密碼:
user.js路由
constexpress=require('express');
constpool=require('../pool.js');
varrouter=express.Router();
router.post('/login',(req,res)=>{
varobj=req.body;
var$uname=obj.uname;
if(!$uname){
res.send({code:401,msg:'unamerequired'});
return;
}
var$upwd=obj.upwd;
if(!$upwd){res.send({code:402,msg:'upwdrequired'});
return;
}
varsql='SELECT*FROMxz_userWHEREuname=?ANDupwd=?'
pool.query(sql,[$uname,$upwd],(err,result)=>{
if(err)throwerr;
if(result.length>0){
res.send({code:200,msg:'loginsuccess'});
}else{
res.send({code:301,msg:'loginerror'});
}});
});
//路由器導出
mole.exports=router;
5.什麼是Nodejs?
Nodejs是一個JavaScript的運行環境,是一個伺服器端的「JavaScript解釋器」,用於方便高效地搭建一些響應速度快、易於擴展的網路應用。它採用事件驅動、非同步編程,為網路服務而設計
思路: 1、這是面試的必考題目。 2、介紹內容要與個人簡歷相一致。 3、表述方式上盡量口語化。 4、要切中要害,不談無關、無用的內容。 5、條理要清晰,層次要分明。 6、事先最好以文字的形式寫好背熟。
問題二:「談談你的家庭情況」
思路: 1、 況對於了解應聘者的性格、觀念、心態等有一定的作用,這是招聘單位問該問題的主要原因。 2、 簡單地羅列家庭人口。 3、宜強調溫馨和睦的家庭氛圍。 4、 宜強調父母對自己教育的重視。 5、 宜強調各位家庭成員的良好狀況。 6、 宜強調家庭成員對自己工作的支持。 7、 宜強調自己對家庭的責任感。
問題三:「你有什麼業余愛好?」
思路: 1、業余愛好能在一定程度上反映應聘者的性格、觀念、心態,這是招聘單位問該問題的主要原因。 2、 最好不要說自己沒有業余愛好。 3、不要說自己有那些庸俗的、令人感覺不好的愛好。 4、 最好不要說自己僅限於讀書、聽音樂、上網,否則可能令面試官懷疑應聘者性格孤僻。 5、最好能有一些戶外的業余愛好來「點綴」你的形象。
問題四:「你最崇拜誰?」
思路: 1、最崇拜的人能在一定程度上反映應聘者的性格、觀念、心態,這是面試官問該問題的主要原因。 2、 不宜說自己誰都不崇拜。 3、 不宜說崇拜自己。 4、 不宜說崇拜一個虛幻的、或是不知名的人。 5、 不宜說崇拜一個明顯具有負面形象的人。 6、所崇拜的人人最好與自己所應聘的工作能「搭」上關系。 7、 最好說出自己所崇拜的人的哪些品質、哪些思想感染著自己、鼓舞著自己。
問題五:「你的座右銘是什麼?」
思路: 1、座右銘能在一定程度上反映應聘者的性格、觀念、心態,這是面試官問這個問題的主要原因。 2、不宜說那些醫引起不好聯想的座右銘。 3、不宜說那些太抽象的座右銘。 4、不宜說太長的座右銘。 5、座右銘最好能反映出自己某種優秀品質。 6、 參考答案——「只為成功找方法,不為失敗找借口」
問題六:「談談你的缺點」
思路: 1、不宜說自己沒缺點。 2、 不宜把那些明顯的優點說成缺點。 3、 不宜說出嚴重影響所應聘工作的缺點。 4、 不宜說出令人不放心、不舒服的缺點。 5、 可以說出一些對於所應聘工作「無關緊要」的缺點,甚至是一些表面上看是缺點,從工作的角度看卻是優點的缺點。
問題七:「談一談你的一次失敗經歷」
思路: 1、 不宜說自己沒有失敗的經歷。 2、 不宜把那些明顯的成功說成是失敗。 3、不宜說出嚴重影響所應聘工作的失敗經歷, 4、 所談經歷的結果應是失敗的。 5、 宜說明失敗之前自己曾信心白倍、盡心盡力。 6、說明僅僅是由於外在客觀原因導致失敗。 7、 失敗後自己很快振作起來,以更加飽滿的熱情面對以後的工作。
問題八:「你為什麼選擇我們公司?」
思路: 1、 面試官試圖從中了解你求職的動機、願望以及對此項工作的態度。 2、 建議從行業、企業和崗位這三個角度來回答。 3、 參考答案——「我十分看好貴公司所在的行業,我認為貴公司十分重視人才,而且這項工作很適合我,相信自己一定能做好。」
問題九:「對這項工作,你有哪些可預見的困難?」
思路: 1、 不宜直接說出具體的困難,否則可能令對方懷疑應聘者不行。 2、可以嘗試迂迴戰術,說出應聘者對困難所持有的態度——「工作中出現一些困難是正常的,也是難免的,但是只要有堅忍不拔的毅力、良好的合作精神以及事前周密而充分的准備,任何困難都是可以克服的。」
問題十:「如果我錄用你,你將怎樣開展工作」
思路: 1、 如果應聘者對於應聘的職位缺乏足夠的了解,最好不要直接說出自己開展工作的具體辦法, 2、可以嘗試採用迂迴戰術來回答,如「首先聽取領導的指示和要求,然後就有關情況進行了解和熟悉,接下來制定一份近期的工作計劃並報領導批准,最後根據計劃開展工作。」
問題十一:「與上級意見不一是,你將怎麼辦?」
思路: 1、一般可以這樣回答「我會給上級以必要的解釋和提醒,在這種情況下,我會服從上級的意見。」 2、如果面試你的是總經理,而你所應聘的職位另有一位經理,且這位經理當時不在場,可以這樣回答:「對於非原則性問題,我會服從上級的意見,對於涉及公司利益的重大問題,我希望能向更高層領導反映。」
問題十二:「我們為什麼要錄用你?」
思路: 1、應聘者最好站在招聘單位的角度來回答。 2、 招聘單位一般會錄用這樣的應聘者:基本符合條件、對這份共組感興趣、有足夠的信心。 3、如「我符合貴公司的招聘條件,憑我目前掌握的技能、高度的責任感和良好的餓適應能力及學習能力 ,完全能勝任這份工作。我十分希望能為貴公司服務,如果貴公司給我這個機會,我一定能成為貴公司的棟梁!」
問題十三:「你能為我們做什麼?」
思路: 1、 基本原則上「投其所好」。 2、 回答這個問題前應聘者最好能「先發制人」,了解招聘單位期待這個職位所能發揮的作用。 3、 應聘者可以根據自己的了解,結合自己在專業領域的優勢來回答這個問題。