[TOC]
## 1.substr和substring的區別
~~~
var str = "hello world"
//獲取局部
console.log(str.slice(0)); //hello world //起始下標,終止下標
console.log(str.substr(0,3)) //hel //起始下標,終止下標
console.log(str.substring(0,4)) //hell //起始下標,截取長度
~~~
## AJAX的工作原理:
```
(1) 創建Ajax異步調用對象
(2) 創建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息
與服務器建立
(3) 發送HTTP請求
(4) 接受服務器的返回數據
```
## 使用正則表達式驗證郵箱格式
~~~
var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;
var email = "example@qq.com";
console.log(reg.test(email)); // true
~~~
###22.http 和 https 有何區別?如何靈活使用?
?
http是HTTP協議運行在TCP之上。所有傳輸的內容都是明文,客戶端和服務器端都無法驗證對方的身份。
https是HTTP運行在SSL/TLS之上,SSL/TLS運行在TCP之上。所有傳輸的內容都經過加密,加密采用對稱加密,但對稱加密的密鑰用服務器方的證書進行了非對稱加密。此外客戶端可以驗證服務器端的身份,如果配置了客戶端驗證,服務器方也可以驗證客戶端的身份
### 26.什么是mvvm mvc是什么區別 原理
一、MVC(Model-View-Controller)
MVC是比較直觀的架構模式,用戶操作->View(負責接收用戶的輸入操作)->Controller(業務邏輯處理)->Model(數據持久化)->View(將結果反饋給View)。
MVC使用非常廣泛,比如JavaEE中的SSH框架
?
### 三、MVVM(Model-View-ViewModel)
如果說MVP是對MVC的進一步改進,那么MVVM則是思想的完全變革。它是將“數據模型數據雙向綁定”的思想作為核心,因此在View和Model之間沒有聯系,通過ViewModel進行交互,而且Model和ViewModel之間的交互是雙向的,因此視圖的數據的變化會同時修改數據源,而數據源數據的變化也會立即反應view。
!
### 50、瀏覽器是如何渲染頁面的?
渲染的流程如下:
### 52:事件委托
?
事件委托就是利用的DOM事件的事件捕獲階段。把具體dom上發生的事件,委托給更大范圍的dom去處理。好比送信員,如果每次都把信件送給每一戶,非常繁瑣。但是如果交給一個大范圍的管理者,比如小區的傳達室,那么事情會變得非常簡單。事件委托就類似這種原理,我頁面中有很多按鈕,如果不使用事件委托,我只能在每個按鈕上注冊事件。非常麻煩。但如果我把事件注冊在一個大范圍的div(假設所有的按鈕都在這個div中),那么我只要注冊一次事件,就可以處理所有按鈕(只要按鈕包含在上述div中)事件的響應了
---------------------
作者:胖梅
來源:CSDN
原文:https://blog.csdn.net/xm1037782843/article/details/80708533
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
### 54:從輸入url到顯示頁面,都經歷了什么
第一步:客戶機提出域名解析請求,并將該請求發送給本地的域名服務器。
第二步:當本地的域名服務器收到請求后,就先查詢本地的緩存,如果有該紀錄項,則本地的域名服務器就直接把查詢的結果返回。
第三步:如果本地的緩存中沒有該紀錄,則本地域名服務器就直接把請求發給根域名服務器,然后根域名服務器再返回給本地域名服務器一個所查詢域(根的子域)的主域名服務器的地址。
第四步:本地服務器再向上一步返回的域名服務器發送請求,然后接受請求的服務器查詢自己的緩存,如果沒有該紀錄,則返回相關的下級的域名服務器的地址。
第五步:重復第四步,直到找到正確的紀錄。
---------------------
作者:胖梅
來源:CSDN
原文:https://blog.csdn.net/xm1037782843/article/details/80708533
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
### 第2種解釋:
一般會經歷以下幾個過程:
1、首先,在瀏覽器地址欄中輸入url
2、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,如果緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三步操作。
3、在發送http請求前,需要域名解析(DNS解析)(DNS(域名系統,Domain Name System)是互聯網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網,而不用去記住IP地址。),解析獲取相應的IP地址。
4、瀏覽器向服務器發起tcp連接,與瀏覽器建立tcp三次握手。(TCP即傳輸控制協議。TCP連接是互聯網連接協議集的一種。)
5、握手成功后,瀏覽器向服務器發送http請求,請求數據包。
6、服務器處理收到的請求,將數據返回至瀏覽器
7、瀏覽器收到HTTP響應
8、讀取頁面內容,瀏覽器渲染,解析html源碼
9、生成Dom樹、解析css樣式、js交互
10、客戶端和服務器交互
11、ajax查詢
---------------------
作者:胖梅
來源:CSDN
原文:https://blog.csdn.net/xm1037782843/article/details/80708533
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
### 寫出3個使用this的典型應用
(1)、在html元素事件屬性中使用,如:
<input type=”button” onclick=”showInfo(this);” value=”點擊一下”/>
(2)、構造函數
function Animal(name, color) {
this.name = name;
this.color = color;
}
(3)、input點擊,獲取值
<input type="button" id="text" value="點擊一下" />
<script type="text/javascript">
var btn = document.getElementById("text");
btn.onclick = function() {
alert(this.value); //此處的this是按鈕元素
}
</script>
(4)、apply()/call()求數組最值
var numbers = [5, 458 , 120 , -215 ];
var maxInNumbers = Math.max.apply(this, numbers);
console.log(maxInNumbers); // 458
var maxInNumbers = Math.max.call(this,5, 458 , 120 , -215);
console.log(maxInNumbers); // 458
---------------------
作者:wdlhao
來源:CSDN
原文:https://blog.csdn.net/wdlhao/article/details/79079660
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!