摘要:有種數據類型三種基本類型數字,字符串,布爾,兩種引用數據類型對象,數組,兩種特殊數據類型,。表示尚未存在的對象。第五步瀏覽器對該響應進行解碼,渲染顯示。談談筆試中會經常碰到的一類問題排序算法冒擇路入兮希快歸堆。
以下是部分整理,有時間還會整理出其他的~~
(最近還在找實習嗚嗚~~)
1.JavaScript是一種弱類型語言,有什么優點和缺點
https://blog.csdn.net/sinolze...
(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那么它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那么程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。
(2)弱類型定義語言:數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。
強類型定義語言在速度上可能略遜色于弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態語言”與“這門語言是否類型安全”之間是完全沒有聯系的! 例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言);JAVA是靜態語言,是強類型定義語言(類型安全的語言)。
2.js的數據類型:
https://www.cnblogs.com/wu-we...
.類型定義
JS是一種弱類型語言。JS擁有動態類型,相同的變量可以用作不同的類型。
JS有7種數據類型:三種基本類型(數字,字符串,布爾),兩種引用數據類型(對象,數組),兩種特殊數據類型(undefined,null)。JS有5種原始類型:數字,字符串,布爾,undefined,null。
typeof 運算符就是檢測變量或值的數據類型。
1.1.undefined類型只有一個值,undefined.
所有已聲明但是沒有初始化的變量,默認值都為undefined。
函數沒有明確返回值的時候,會默認返回undefined。
1.2.null為空對象,只有一個值,null
undefined與null相等。
null表示尚未存在的對象。
當函數返回的對象不存在時,返回null。
當某個對象不需要時,可將值設為null。
3. 在js里call()與apply()有什么相同和不同?
call 方法:調用一個對象的一個方法,以另一個對象替換當前對象。
call([thisObj,arg1, arg2, ...,argN)
參數thisObj:可選項,將被用作當前對象的對象。
arg1, arg2, …, argN:可選項。將被傳遞方法參數序列。
說明:call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。如果沒有提供 thisObj 參數,那么 Global 對象被用作 thisObj。說明白一點其實就是更改對象的內部指針,即改變對象的this指向的內容。
call函數和apply方法的第一個參數都是要傳入給當前對象的對象,及函數內部的this。后面的參數都是傳遞給當前對象的參數,對于apply和call兩者在作用上是相同的,但兩者在參數上有區別的。
對于第一個參數意義都一樣,但對第二個參數:apply傳入的是一個參數數組,也就是將多個參數組合成為一個數組傳入,而call則作為call的參數傳入(從第二個參數開始)。
如 func.call(func1,var1,var2,var3)對應的apply寫法為:func.apply(func1,[var1,var2,var3])
同時,使用apply的好處是可以直接將當前函數的arguments對象作為apply的第二個參數傳入
4. XML和JSON有過了解吧?能說一下分別介紹一下他們嗎?JSON有什么優勢
如果要表達數組呢?XML中可以在父節點下面累放節點,而JSON則有[ ]這樣更直觀的方式。
如果字符串中有換行符怎么辦,JSON不存在這個問題,而XML必須引入CDATA解決問題
當上面的standalone為yes的時候表示DTD直接寫到這個XML里面去,這樣,就不需要額外的DTD文件了,也就是說,這個文件不但是自解釋,還是自校驗的了。而這一點,JSON是不可能做到的。
另外,XML還可以有命名空間,可以通過xmlns屬性引入不同的定義文件,像編程語言的import來自由組合,這一點,JSON也是做不到的
JSON的一大好處是有些語言可以原生支持,比如JavaScript,不需要一個JSON Parser這樣的東西,代碼里表示對象用的就是JSON格式的表達。但是直接支持XML的編程語言,好像沒有吧,倒是有像HTML等等標記語言的解析器,可以處理任意DOM對象。
5.CSS3哪些新特性值得稱贊的特點:
CSS3把很多以前需要使用圖片和腳本來實現的效果,只需要短短幾行代碼就能搞定CSS3作為CSS技術的升級版本,著力于模塊化發展,將規范分解為一些小的模塊,如選擇器、盒子模型、列表模塊、背景和邊框等;并加入了很多新的模塊和屬性,比如復雜選擇器、文字陰影、邊框圓角、邊框陰影、漸變、過渡、多欄布局、2D/3D 轉換、動畫等。
其中,CSS3提供了一些復雜選擇器,用于實現頁面復雜情況下的元素選擇,如屬性選擇器、一些偽類和偽元素選擇器;漸變用于為元素設置漸變效果的背景;轉換可以實現元素的變換,比如位移、縮放、旋轉等;過渡可以實現簡單的動畫效果;而動畫屬性則可以實現復雜的動畫,可以實現逐幀制作動畫。
6.在瀏覽器那里輸入一個網址,會發生什么?
第一步 瀏覽器查找該域名的 IP 地址
(用到ARP協議獲取物理地址 和DNS協議(Domain Name System,域名系統) 獲取網絡地址,即IP地址)
第二步 瀏覽器根據解析得到的IP地址向 web 服務器發送一個 HTTP 請求。(用到TCP、IP、以太網協議報頭)
第三步 服務器收到請求并進行處理
第四步 服務器返回一個響應(服務器返回一個 HTTP 響應,如果返回狀態碼304,瀏覽器可以直接使用之前緩存的資源。對于內容響應,瀏覽器需要進行響應解碼,渲染顯示。)
第五步 瀏覽器對該響應進行解碼,渲染顯示。( 在瀏覽器沒有完整接受全部HTML文檔時,(打開網頁,網頁顯示用到了表示層的HTML協議)它就已經開始顯示這個頁面了,如果是個靜態的頁面,那到此就基本結束了。如果是是動態的,那么在瀏覽器顯示HTML時,會獲取嵌入在HTML中的對象,瀏覽器會發送獲取請求來重新獲得這些文件。這些請求都要經歷一個和HTML讀取類似的過程。 對于靜態的頁面內容,瀏覽器通常會進行緩存,而對于動態的內容,瀏覽器通常不會進行緩存)
第六步 完成后,瀏覽器發送異步請求(頁面顯示完成后客戶端仍與服務器端保持著聯系。 它會持續與服務器保持聯系來及時更新一些頁面信息。在瀏覽器中執行的 JavaScript代碼會給服務器發送異步請求。這個異步請求發送給特定的地址,它是一個按照程式構造的獲取或發送請求。)
此過程用到的協議:
應用層使用了HTTP協議進行超文本傳輸,對于服務器后臺處理應該有telnet遠程調用協議響應用戶,DNS協議獲取網絡地址,即IP地址;打開網頁,網頁顯示用到了表示層的HTML協議;
另外必然用到了傳輸層的TCP和網絡層的IP協議;網絡層ARP協議獲取物理地址;ICMP協議控制信息的傳遞,還有很多吧,我就不知道了。
7.正則匹配URL。
協議:
file 資源是本地計算機上的文件。格式file://
ftp 通過 FTP訪問資源。格式 FTP://
gopher 通過 Gopher 協議訪問該資源。
http 通過 HTTP 訪問該資源。 格式 HTTP://
https 通過安全的 HTTPS 訪問該資源。 格式 HTTPS://
mailto 資源為電子郵件地址,通過 SMTP 訪問。 格式 mailto:
MMS 通過 支持MMS(流媒體)協議的播放該資源。(代表軟件:Windows Media Player)格式 MMS://
ed2k 通過 支持ed2k(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:電驢) 格式 ed2k://
Flashget 通過 支持Flashget:(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:快車) 格式 Flashget://
thunder 通過 支持thunder(專用下載鏈接)協議的P2P軟件訪問該資源。(代表軟件:迅雷) 格式 thunder://
news 通過 NNTP 訪問該資源。
正則用法和url結構。
protocol :// hostname[:port] / path / ;parameters#fragment
相信大部分只有 [;parameters]這個不太懂,在http權威指南中有介紹這個東西,貌似是針對某些協議,需要驗證用戶名和密碼。用的不多,知道就行。
簡單正則規則:w -> a-z[0-9]_
d -> 數字
s -> 空格,換行,tab鍵等
? -> 0個或一個
-> 0個或多個
-> 一個或多個
^ -> 開頭
$ -> 結尾
. -> 任何字符
() -> 子表達式
g -> 全局搜索(要考慮lastIndex)
i -> 忽略大小寫
m -> 多行查找
.*? -> 非貪婪模式
-> 將下一個字符標記為特殊字符
a{3,4} -> 最少匹配連續3個a,最多匹配4個連續a
[a-z] -> 匹配a到z的任意一個字符,1 -> 匹配不是a到z的任意字符。
8.在和服務器建立連接時,用的是TCP還是UDP?
從原理上,TCP的優勢有:
簡單直接的長連接
可靠的信息傳輸
數據包的大小沒有限制
任何一個和TCP打過交道的人都知道,要實現一個穩定的TCP網絡連接,需要處理各種隱藏的坑,比如斷線檢測、慢速客戶端響應阻塞數據包,對開放連接的各種dos攻擊,阻塞和非阻塞IO模型等等。除了上面列出的這些問題外,一個好的TCP模塊確實不好編碼實現。但是,TCP最糟糕的特性是它對阻塞的控制。一般來說,TCP假定丟包是由于網絡帶寬不夠造成的,所以發生這種情況的時候,TCP就會減少發包速度,舉個例子來說,UDP是基于數據包構建,這意味著在某些方面需要你完全顛覆在TCP下的觀念。UDP只使用一個socket進行通信,不像TCP需要為每一個客戶端建立一個socket連接。這些都是UDP非常不錯的地方。這也是人們為什么經常推薦TCP的原因。在用TCP的時候你可以不考慮這些問題,直到你需要同步連接的數量級達到500以上的時候。
9.談談筆試中會經常碰到的一類問題-排序算法
冒擇路(入)兮(希)快歸堆。怎樣理解這句話呢?直譯就是冒失的選擇道路啊,你將很快入土,歸堆就是入土為安了。拆開來理解呢,“冒”就是“冒泡”,“選”就是“選擇”,“路(入)”就是“插入”,“兮(希)”就是“希爾”,“快”就是“快速”,“歸”就是“歸并”,“堆”還是“堆”,在每個詞后面加上“排序”二字不就是我們常用的7種排序算法
快速排序算法是一種穩定的算法嗎?它的最壞復雜度是多少?平均復雜度呢?
快速排序的思想和算法:快速排序算法使用了分治技術
10.那么在C++里面,堆棧最大的不同點是什么?
一個由c/C++編譯的程序占用的內存分為以下幾個部分
1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
2、堆區(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
3、全局區(靜態區)(static)—,全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域, 未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。 - 程序結束后有系統釋放
4、文字常量區 —常量字符串就是放在這里的。 程序結束后由系統釋放
5、程序代碼區—存放函數體的二進制代碼
c和c+函數堆棧基本一樣,不同的地方是c++函數堆棧要支持異常機制
malloc/free:
1、函數原型及說明:
void *malloc(long NumBytes):該函數分配了NumBytes個字節,并返回了指向這塊內存的指針。如果分配失敗,則返回一個空指針(NULL)。 void free(void *FirstByte): 該函數是將之前用malloc分配的空間還給程序或者是操作系統,也就是釋放了這塊內存,讓它重新得到自由。
2.內存操作:
malloc函數的參數是接受需要分配的內存字節數,如果內存能夠滿足請求量,那么將會返回:指向被分配的內存塊起始位置 free函數釋放的是指針指向的內存(不是釋放的指針本身,不會刪除指針本身),其中指針必須指向所釋放內存空間的首地址
new/free:
1.操作時發生事件:
new的時候會有兩個事件發生:1).內存被分配(通過operator new 函數) 2).為被分配的內存調用一個或多個構造函數構建對象 delete的時候,也有兩件事發生:1).為將被釋放的內存調用一個或多個析構函數 2).釋放內存(通過operator delete 函數)
11.數據結構構圖:
對于Node.js你了解多少?
Node.js優點:
1、采用事件驅動、異步編程,為網絡服務而設計。其實Javascript的匿名函數和閉包特性非常適合事件驅動、異步編程。而且JavaScript也簡單易學,很多前端設計人員可以很快上手做后端設計。
2、Node.js非阻塞模式的IO處理給Node.js帶來在相對低系統資源耗用下的高性能與出眾的負載能力,非常適合用作依賴其它IO資源的中間層服務。
3、Node.js輕量高效,可以認為是數據密集型分布式部署環境下的實時應用系統的完美解決方案。Node非常適合如下情況:在響應客戶端之前,您預計可能有很高的流量,但所需的服務器端邏輯和處理不一定很多。
Node.js缺點:
1、可靠性低
2、單進程,單線程,只支持單核CPU,不能充分的利用多核CPU服務器。一旦這個進程崩掉,那么整個web服務就崩掉了。
13. jquery綁定click的方法有幾種
第一種方式:
$(document).ready(function(){
$("#clickme").click(function(){
alert("Hello World click");
});
第二種方式:
$("#clickmebind").bind("click", function(){
alert("Hello World bind");
});
第三種方式:
$("#clickmeon").on("click", function(){
alert("Hello World on");
});
});
14.面試時,問.你的優點/競爭力 怎么回答比較好
目前還是大三,沒有實習過,所以暫時還沒有實習經驗。但是很多技能我愿意去嘗試,喜歡去接觸新的東西,學習新的技能,就是哪里不會學哪里。平時喜歡在一些網站上看學習視頻,比如慕課網,騰訊課堂等去學習自己需要掌握的技能。個人一般有比較好的學習習慣和較好的接受新知識的能力,相信能較快適應所在崗位,如果能夠入職的話。
無經驗:回答凸顯你的學習能力。沒有經驗,并不意味著沒有競爭優勢。對于缺乏一定經驗的應屆生或在校實習生而言,你最大的競爭優勢就在于你的可塑性。剛畢業,相當于一張白紙的你,沒有經過社會的洗禮,自然也不會沾染一些不良的習慣。這時候,如果具有有良好的學習能力和較快的接受能力,能較快的融入工作崗位,那就肯定受用人單位的親睞。在校期間,你或多或少的都參與過一些社會實踐活動。還有的甚至參與過班級或學校管理,策劃并組織過相關的活動。這些只要是你參與過的,都是你的財富,不知不覺間都能讓你掌握一定的技能。如果,你覺得自己的實踐沒什么好說的話,也可以從你所學的專業入手,分析一下專業和應聘崗位之間的關系,再說明你如何將所學轉化成所用。 分享一個六度伯樂網,可以看到很多關于職場方面的信息和文章。
15. 移動端適配問題
自動適應屏幕寬度之viewport --在html中添加meta標簽:網頁的寬度默認等于屏幕的寬度。
16.關于未來規劃:
首先,很感謝XX提供機會,讓我有如此近的距離接近鵝廠,不管最后有沒有被錄取,進入騰訊實習,因為一直覺得在互聯網行業,進騰訊是一件很幸福的事兒,那里都是很優秀的師兄師姐,可以學習到很多技能和學習態度,所以一直很期待能進入騰訊實習工作。對于短期的規劃是,把手頭上的事情做好,為不久到來的實習做好更充分的準備,學習更多的技能,不松懈,但也會注意勞逸結合,畢竟身體才是革命之本,然后爭取所在的實習階段做一個優秀的實習生,成就一個更好的自己。長遠一點,工作的話,繼續保持不斷進取奮斗的熱情以及向領導和同事虛心請教的態度和喜歡繼續挑戰新知識的態度去對待工作從而全面提高自己的學習修養和能力,生活上也要保持積極樂觀的生活態度,去應對生活和學習中大大小小的問題。
17. http協議知識整理
http協議是一個應用層的協議。規定了瀏覽器和服務器之間的通信規范。通常用TCP連接方式。
2.HTTP 1.0、1.1 連接的方式。
在HTTP 1.0 中,瀏覽器和服務器使用的是短連接,響應完,立即斷開。請求的過程:3次握手,請求,響應,斷開連接。
http不保存連接,好處:服務器可以處理更多的連接,但是每次建立連接會降低處理速度。
現在主流的版本是HTTP 1.1 ,在HTTP 1.1 中我們使用長連接,一個請求結束后,不斷開,繼續請求。
告知服務器意圖的 HTTP 方法:
GET 請求獲取Request-URI所標識的資源(獲取資源)
POST 在Request-URI所標識的資源后附加新的數據,常用于提交表單。(傳輸實體主體)
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭(獲取報文首部)
PUT 請求服務器存儲一個資源,并用Request-URI作為其標識(傳輸文件)
DELETE 請求服務器刪除Request-URI所標識的資源(刪除文件)
TRACE 請求服務器回送收到的請求信息,主要用于測試或診斷(追蹤路徑)
CONNECT 保留將來使用
OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求(詢問支持的方法)
get和post是最常用的方法,簡單來說,前者用于獲取數據,后者用于提交數據。
18.HTTP狀態碼
主要還得記得http中Status-Code的第一個數字定義響應的類別,后兩個數字沒有分類的作用。第一個數字可能取5個不同的值:
1xx:信息響應類,表示接收到請求并且繼續處理。
2xx:處理成功響應類,表示動作被成功接收、理解和接受。
3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理。
4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行。
5xx:服務端錯誤,服務器不能正確執行一個正確的請求
1 消息
? 100 Continue
? 101 Switching Protocols
? 102 Processing
2 成功
? 200 OK
? 201 Created
? 202 Accepted
? 203 Non-Authoritative Information
? 204 No Content
? 205 Reset Content
? 206 Partial Content(部分內容)
? 207 Multi-Status
3 重定向
? 300 Multiple Choices
? 301 Moved Permanently(永久性轉移)
? 302 Move temporarily(暫時性轉移)
? 303 See Other
? 304 Not Modified(存在緩存,沒修改)
? 305 Use Proxy
? 306 Switch Proxy
? 307 Temporary Redirect
4 請求錯誤
? 400 Bad Request
? 401 Unauthorized
? 402 Payment Required
? 403 Forbidden(禁用,非法)
? 404 Not Found
? 405 Method Not Allowed
? 406 Not Acceptable
? 407 Proxy Authentication Required
? 408 Request Timeout
? 409 Conflict
? 410 Gone
? 411 Length Required
? 412 Precondition Failed
? 413 Request Entity Too Large
? 414 Request-URI Too Long
? 415 Unsupported Media Type
? 416 Requested Range Not Satisfiable
? 417 Expectation Failed
? 421 too many connections
? 422 Unprocessable Entity
? 423 Locked
? 424 Failed Dependency
? 425 Unordered Collection
? 426 Upgrade Required
? 449 Retry With
? 451Unavailable For Legal Reasons
5 服務器錯誤(5、6字頭)
? 500 Internal Server Error
? 501 Not Implemented
? 502 Bad Gateway
? 503 Service Unavailable
? 504 Gateway Timeout
? 505 HTTP Version Not Supported
? 506 Variant Also Negotiates
? 507 Insufficient Storage
? 509 Bandwidth Limit Exceeded
? 510 Not Extended
? 600 Unparseable Response Headers
18.JSONP 的工作原理是什么?
就是利用 并提供一個回調函數來接收數據(函數名可約定,或通過地址參數傳遞)。 第三方產生的響應為json數據的包裝(故稱之為jsonp,即json padding),形如callback({"name":"hax","gender":"Male"})
這樣瀏覽器會調用callback函數,并傳遞解析后json對象作為參數。本站腳本可在callback函數里處理所傳入的數據。
19. CSS的基本選擇器有哪幾種?分別適合在什么情況下使用?
三種:類別選擇器、標簽選擇器、id選擇器,類別是用class命名的時候用 標簽是html標簽的時候用 id就不用多說了
ID選擇器:#header {}
類選擇器:.header {}
元素選擇器:div {}
子選擇器:ul > li {}
后代選擇器:div p {}
偽類選擇器:a:hover {}
屬性選擇器:input[type="text"] {}
id優先級高于類class;后面的樣式覆蓋前面;指定的高于繼承;
20. 這些CSS選擇器的權重呢?
CSS規范為不同類型的選擇器定義了特殊性權重,特殊性權重越高,樣式會被優先應用。
權重設定如下:
*通配符選擇器,權重為0;
html選擇器,權重為1;
類選擇器,權重為10;
id選擇器,權重為100;
這里還有一種情況:在html標簽中直接使用style屬性,這里的style屬性的權重為1000;
21. 一個div如何居中:
水平居中:
22. 目前想繼續學習的前端技術:
框架選型:Vue, React, Animate,Node.Js(基于Chrome JavaScript運行時建立的平臺, 用于方便地搭建響應速度快、易于擴展的網絡應用), Zepto.js ["zept??](適合開發跨平臺Web App)
構建工具:gulp 和grunt
模塊化開發:webpack
23.談談mvvm框架。
個人覺得意義不大,就是看你對新技術有沒有了解。項目中沒用到,去學的話,我是不愿意去的。但是知道它是下一代MVC前端框架就行了。Angular.js是杰出代表。頁面編寫和業務編寫分離,極大的加快了開發的進度,以及代碼的分離。
24.了解前端的緩存(存儲)嗎?緩存分為幾類?
前端的緩存無非就Cookie,LocalStorge,SessionStorge這三個吧。
Cookie,存儲容量小,僅僅4kb左右,在網絡請求的時候可以發送,不建議存儲重要數據,因為會被網絡詐騙就是把本地的cookie發到別人的服務器上,進而獲取你的賬戶密碼。LocalStorge,SessionStorge都是本地緩存的主要用的,兩者的用法都很簡單,都有各自的Set和get方法。主要的區別就是LocalStorge是一種持久化的存儲方式,也就是說如果不手動清除,數據就永遠不會過期。而SessionStorge關閉瀏覽器就清空數據。
25.閉包的理解
"官方"的解釋是:所謂"閉包",指的是一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分
特點:
這段代碼有兩個特點:
1、函數b嵌套在函數a內部;
2、函數a返回函數b。
這樣在執行完var c=a( )后,變量c實際上是指向了函數b,再執行c( )后就會彈出一個窗口顯示i的值(第一次為1)。這段代碼其實就創建了一個閉包,為什么?因為函數a外的變量c引用了函數a內的函數b,就是說:
當函數a的內部函數b被函數a外的一個變量引用的時候,就創建了一個閉包。
其實閉包也就是指有權訪問另一個函數作用域的函數而已。常用的創建閉包的方法就是在函數內部創建另一個函數。
26. 綁定事件的方法?
? 嵌入dom
? 直接綁定
? 事件監聽
27.了解事件流嗎?事件流的順序是什么?
一個完整的JS事件流是從window開始,最后回到window的一個過程
事件流被分為三個階段(1~ 5)捕獲過程、(5~ 6)目標過程、(6~ 10)冒泡過程
28. 說說字符串常用的十個函數
charAt() 返回在指定位置的字符。
concat() 連接字符串。
fromCharCode() 從字符編碼創建一個字符串。
indexOf() 檢索字符串。
match() 找到一個或多個正則表達式的匹配。
replace() 替換與正則表達式匹配的子串。
search() 檢索與正則表達式相匹配的值。
slice() 提取字符串的片斷,并在新的字符串中返回被提取的部分。
split() 把字符串分割為字符串數組。
substr() 從起始索引號提取字符串中指定數目的字符。
substring() 提取字符串中兩個指定的索引號之間的字符。
toLocaleLowerCase() 把字符串轉換為小寫。
toLocaleUpperCase() 把字符串轉換為大寫。
toLowerCase() 把字符串轉換為小寫。
toUpperCase() 把字符串轉換為大寫。
toString() 返回字符串。
valueOf() 返回某個字符串對象的原始值。
29.說說數組常用的十個函數
這個也舉下例子吧,其實在控制臺打印一下就有了的
concat() 連接兩個或更多的數組,并返回結果。
join() 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。
pop() 刪除并返回數組的最后一個元素
push() 向數組的末尾添加一個或更多元素,并返回新的長度。
reverse() 顛倒數組中元素的順序。
shift() 刪除并返回數組的第一個元素
slice() 從某個已有的數組返回選定的元素
sort() 對數組的元素進行排序
splice() 刪除元素,并向數組添加新元素。
toSource() 返回該對象的源代碼。
toString() 把數組轉換為字符串,并返回結果。
toLocaleString() 把數組轉換為本地數組,并返回結果。
unshift() 向數組的開頭添加一個或更多元素,并返回新的長度。
valueOf() 返回數組對象的原始值。
30.談談this是什么,this代表什么
this是Javascript語言的一個關鍵字。它代表函數運行時,自動生成的一個內部對象,只能在函數內部使用。隨著函數使用場合的不同,this的值會發生變化。但是有一個總的原則,那就是this指的是,調用函數的那個對象。
31.改變this指向的方法
要想把 this 的值從一個上下文傳到另一個,就要用 call 或者apply 方法。
// 一個對象可以作為call和apply的第一個參數,并且this會被綁定到這個對象。
var obj = {a: "Custom"};
// 這個屬性是在global對象定義的。
var a = "Global";
function whatsThis(arg) {
return this.a; // this的值取決于函數的調用方式
}
whatsThis(); // "Global"
whatsThis.call(obj); // "Custom"
whatsThis.apply(obj); // "Custom"
32.在a標簽里面添加一個點擊事件,那么點擊事件的this指向的是什么。
Show inner this
這種情況下,沒有設置內部函數的this,所以它指向global/window對象(即非嚴格模式下調用的函數未
默認情況下事件處理程序綁定在DOM節點上面,不管是HTML事件處理程序,還是DOM0、DOM2,都指向了綁定了當前DOM。但是IE的attachEvent特殊,指向window。
你舉例的例子那只是匿名函數的默認調用,所以返回window,這個還是要注意一下的。設置this時指向的默認對象。
33.TCP/IP斷開的時候雙方需要注意一些什么?
TCP/IP斷開的時候,大家都知道,TCP/IP斷開需要四次揮手:
客戶端發送一個FIN報文給服務器,表示我將關閉客戶端到服務器端這個方向的連接。
服務器收到報文后,發送一個ACK報文給客戶端。
服務器發送一個FIN報文給客戶端,表示自己也將關閉服務器端到客戶端這個方向的連接。
客戶端收到FIN后,發回一個ACK報文給服務器,FIN的序號加1。
但是注意,為什么揮手過程,第二步服務器發完信息之后,還要再發一次呢,那是因為,在第二步當中,服務器只是發送說接受到要斷開了,但是服務器可能現在還有正在執行的任務,直到干完活了,再去說,現在沒事了斷開吧。然后客戶端再接受信息,就開始斷開。
那么大家也就可以理解了,如果在斷開的時候,客戶端已經不需要東西了,那么亦可將服務器第二步后繼續傳遞數據可以關閉,當然,這也是個人的理解。大家可以把這個想象成客戶說不要商家繼續發貨了的過程。
34.Vue原理:
. Vue.js是一個提供MVVM數據雙向綁定的庫,其核心思想無非就是:
數據驅動: Vue.js 的核心是一個響應的數據綁定系統,它讓數據與DOM保持同步非常簡單; vue的數據驅動無非就是利用的是ES5Object.defineProperty和存儲器屬性; jq是通過綁定事件來進行操作dom,而vue和react是通過操作obj的屬性來重新渲染dom;
組件系統: 用官方一點的話來形容,組件化就是:實現了擴展HTML元素,封裝可用的代碼。頁面上每個獨立的可視/可交互區域視為一個組件;每個組件對應一個工程目錄,組件所需要的各種資源在這個目錄下就近維護;頁面不過是組件的容器,組件可以嵌套自由組合形成完整的頁面。簡單的說,其實就是把頁面進行分塊處理,分成多個小塊,每個小塊就是一個組件,這樣可以形成組件的復用,而且提高開發效率。
35. js實現異步的操作有哪些
利用setTimout實現異步
使用Promise對象
動態創建script標簽
利用script標簽提供的async
還有ES6里面async函數,使得異步操作變得更加方便
36.對于性能優化,你的指標是什么
靜態文件的大小
加載靜態資源需要的時間
最大限度地減少HTTP請求
使用內容分發網絡
headers添加一個Expires或Cache-Control頭
用gzip的壓縮內容
將樣式表在頂部
js代碼放在底部
避免使用CSS表達式
JavaScript和CSS放在外部
減少DNS查找
縮小JavaScript和CSS
避免重定向
刪除重復的腳本和樣式
減少DOM元素的數量
1. 快速排序的思想和算法:
? 快速排序算法使用了分治技術
? JavaScript
function quickSort(array){
function sort(prev, numsize){
var nonius = prev;
var j = numsize -1;
var flag = array[prev];
if ((numsize - prev) > 1) {
while(nonius < j){
for(; nonius < j; j--){
if (array[j] < flag) {
array[nonius++] = array[j]; //a[i] = a[j]; i += 1;
break;
};
}
for( ; nonius < j; nonius++){
if (array[nonius] > flag){
array[j--] = array[nonius];
break;}}}
array[nonius] = flag;
sort(0, nonius);
sort(nonius + 1, numsize);
}}
sort(0, array.length);
return array;
}
37.自我介紹
您好,我叫XXX,深大大三學生,電子信息工程專業。現在大概說下我學習前端的過程,從大二下的暑假,在師兄的指導下開始接觸前端,接著自主學習前端開發知識比如HTML,JS,CSS ;JS框架: jQuery,vue框架等的學習,以及進行一些網頁實戰訓練,比如企業類商城類等網頁的代碼編寫。在上學期開始那會兒準備和小伙伴寫博客,我主要負責前端網頁代碼編寫,小伙伴負責后臺。但是可能由于當時雙方課程有點緊張,沒有繼續到最后吧。由于前端最后還是要和后臺工程師合作制定技術方案并解決技術問題,比如服務接口等問題,所以對進行數據交換等技術也大我從概了解下,也稍微對python入門學習下,加深對前后端之間關系的認識 。大概說下個人興趣的話,比較喜歡運動,比如籃球,排球,網球,羽毛球,乒乓球都會玩一下下,不過最近忙了點,不過還是會堅持一周兩三次的運動。嗯,說完啦。
38.Tcp/ip有幾層
四層:應用,傳輸層,網絡層,數據鏈路層
39.選擇學習前端
第一的話:我是電子信息工程專業,學過計算機基礎,C,C++,微機原理,數據結構,可視化語言等知識,對本專業的知識還挺喜歡的,進入IT行業是有優勢的; 第二:在進入大學以前對技術牛人很崇拜,如果自己也能成為一員就最好了,所以這也是一開始選擇計算機類專業的原因和寫代碼的動力了。 第三:前端本身的魅力:做出來的東西能夠馬上呈現效果,可以帶來很直接的成就感。而且如果是一個很炫酷,自己非常用心做出來的東西。
40.HTML5語義標簽
http://www.html5jscss.com/htm...
41. HTML5和html4的區別
HTML5推出的理由
解決Web上存在的問題:
Web瀏覽器間的兼容性低:在一個瀏覽器中可以運行的HTML、Css、Javascript,在另一個瀏覽器中不能運行。
原因:各瀏覽器規范不統一,沒有被標準化。
解決方案:使各瀏覽器的功能符合通用標準。
文檔結構不夠明確:HTML4中元素不能把文檔結構表示清楚。
解決方案:增加與結構相關的元素。
Web應用程序的功能受到限制:HTMLL4對Web應用程序的貢獻很小,比如:不允許同時上傳多個文件。
解決方案:提供供Web應用程序使用的API。
新增的元素和廢除的元素
新增元素
新增的結構元素
section:表示頁面中內容塊,比如章節、頁眉、頁腳或頁面中的其他部分,可與
https://www.cnblogs.com/melbo...
42.面向對象和面向過程的區別:
面向對象:用線性的思維。與面向過程相輔相成。在軟件開發過程中,宏觀上,用面向對象來把握事物間復雜的關系,分析系統。微觀上,仍然使用面向過程。
“面向過程”是一種是事件為中心的編程思想。就是分析出解決問題所需的步驟,然后用函數把這寫步驟實現,并按順序調用。
”面向對象“是以“對象”為中心的編程思想
簡單的舉個例子:汽車發動、汽車到站。汽車啟動是一個事件,汽車到站是另一個事件,面向過程編程的過程中我們關心的是事件,而不是汽車本身。針對上述兩個事件,形成兩個函數,之后依次調用。 對于面向對象來說,我們關心的是汽車這類對象,兩個事件只是這類對象所具有的行為。而且對于這兩個行為的順序沒有強制要求。 面向過程的思維方式是分析綜合,面向對象的思維方式是構造。 面向過程就是分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113109.html
摘要:一些知識點有哪些方法方法前端從入門菜鳥到實踐老司機所需要的資料與指南合集前端掘金前端從入門菜鳥到實踐老司機所需要的資料與指南合集歸屬于筆者的前端入門與最佳實踐。 工欲善其事必先利其器-前端實習簡歷篇 - 掘金 有幸認識很多在大廠工作的學長,在春招正式開始前為我提供很多內部推薦的機會,非常感謝他們對我的幫助。現在就要去北京了,對第一份正式的實習工作也充滿期待,也希望把自己遇到的一些問題和...
摘要:面試季又到了,各位小鮮肉也在著手準備基本的面試實習。但是,有小鮮肉的思想我確實有點不敢茍同。最近看了一下,基本的面試題目集,發現都是一問一答的形式,這個不是和天速成一模一樣了嗎知其然,不知其所以然。 面試季又到了,各位小鮮肉也在著手準備基本的面試、實習。但是,有小鮮肉的思想我確實有點不敢茍同。面試無非就是問一些問題,你能答出來就行,答不出來就 pass。那如果我知道你要問哪些問題,這不...
摘要:作為一個前端人,阿里巴巴,是我最想去的國內公司,我看重的也不是他薪水如何,完全在于他的技術,這一點可以說明一切。阿里是個十分重視基礎的公司,和浮躁的前端大環境形成鮮明的對比。我不是第一次投阿里巴巴,所以心態一開始還是挺平和的。 這是去年8月份秋招的面試,五面都面完了,給大家貢獻干貨吧。我沒寫問題的答案,有什么問題可以留言區問我。 一面 電話面(1小時)電話面問題不多,但是十分考驗對相關...
摘要:作為一個前端人,阿里巴巴,是我最想去的國內公司,我看重的也不是他薪水如何,完全在于他的技術,這一點可以說明一切。阿里是個十分重視基礎的公司,和浮躁的前端大環境形成鮮明的對比。我不是第一次投阿里巴巴,所以心態一開始還是挺平和的。 這是去年8月份秋招的面試,五面都面完了,給大家貢獻干貨吧。我沒寫問題的答案,有什么問題可以留言區問我。 一面 電話面(1小時)電話面問題不多,但是十分考驗對相關...
摘要:作為一個前端人,阿里巴巴,是我最想去的國內公司,我看重的也不是他薪水如何,完全在于他的技術,這一點可以說明一切。阿里是個十分重視基礎的公司,和浮躁的前端大環境形成鮮明的對比。我不是第一次投阿里巴巴,所以心態一開始還是挺平和的。 這是去年8月份秋招的面試,五面都面完了,給大家貢獻干貨吧。我沒寫問題的答案,有什么問題可以留言區問我。 一面 電話面(1小時)電話面問題不多,但是十分考驗對相關...
閱讀 1907·2021-09-23 11:21
閱讀 1693·2019-08-29 17:27
閱讀 1053·2019-08-29 17:03
閱讀 719·2019-08-29 15:07
閱讀 1915·2019-08-29 11:13
閱讀 2373·2019-08-26 12:14
閱讀 904·2019-08-26 11:52
閱讀 1729·2019-08-23 17:09