# JavaScript 編碼實例
## JavaScript 驗證手機號
> 主要是正則表達式的書寫。
```javascript
var phoneNumber;
phoneNumber = document.getElementById("phone-number-input");
phoneRole = /^(1[1-9][0-9]{9})$/;
if (phoneRole.test(phoneNumber) == false) {
alert("phone number is wrong");
}else {
alert ("phone number is correct")
}
```
## JavaScript 拼接 URL
```javascript
export function encodeSearchParams(obj) {
const params = []
Object.keys(obj).forEach((key) => {
let value = obj[key]
// 如果值為undefined我們將其置空
if (typeof value === 'undefined') {
value = ''
}
// 對于需要編碼的文本(比如說中文)我們要進行編碼
params.push([key, encodeURIComponent(value)].join('='))
})
return params.join('&')
}
```
## JavaScript 實現 ajax 方法
```javascript
function getAJAX(fn,url){
var xhr = createXHR();
xhr.open("GET",url,true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){//異步請求時的狀態碼4代表數據接收完畢
if(xhr.status == 200){//HTTP的狀態 成功
var data = eval("(" + xhr.responseText + ")");
fn(data);//實現函數的回調,將結果返回
}
}
}
xhr.send(null);
}
```
## JavaScript 如何實現一個棧
> todo
## JavaScript 實現字符串反轉
- 使用 `split` 將字符串轉換為字符數組
- 使用 `reverse` 將字符數組反轉
- 使用 `.join('')` 將字符數組轉換為字符串
```javascript
function stringReversal(string) {
var stringArray = string.split('');
var resultString= stringArray.reverse(stringArray);
return resultString.join('');
}
```
## 合并兩個有序數組(歸并排序)
```javascript
function mergeArray(array1, array2) {
var index1 = 0, index2 = 0;
var resultArray = [];
while( index1 < array1.length && index2 < array2.length ) {
if( array1[index1] < array2[index2] ) {
resultArray.push(array1[index1]);
index1 ++;
}else {
resultArray.push(array2[index2]);
index2++;
}
}
while( index1 < array1.length ) {
resultArray.push(array1[index1]);
index1++;
}
while( index2 < array2.length ) {
resultArray.push(array2[index2]);
index2++;
}
return resultArray;
}
```
## JavaScript 保留兩位小數
> 參考文章 [JS保留兩位小數總結](https://baijiahao.baidu.com/s?id=1620001265953404530&wfr=spider&for=pc)
### toFixed()
> 四舍五入,類型變化為 string 類型,小數點后位數不夠的用 0 補齊,一般小數位數在 0 -- 20 之間,太大有可能會拋出 RangeError。
> 推薦文章 [為什么(2.55).toFixed(1)等于2.5?](https://www.cnblogs.com/libaoli/p/7865100.html)
```javascript
var num = 3.141592653;
num = num.toFixed(2);
console.log(num); // 3.14
console.log(typeof num); // string
```
### Math.floor()
- 1. HTML
- 1.1 HTML 標簽
- 1.2 HTML 屬性
- 1.3 HTML5
- 2. CSS/CSS3
- 2.1 CSS3
- 2.2 Less
- 2.3 Sass
- 3. JavaScript
- 3.1 JQuery
- 3.2 javascript code
- 3.3 es6
- 4. 前端框架
- 4.1 Angular4+
- 4.2 React
- 4.3 Vue
- 5. 綜合知識
- 5.1 HTTP
- 5.2 websocket
- 5.3 綜合問題集合
- 5.4 前端優化
- 6. 附加知識
- 6.1 TCP/IP
- 6.2 數據結構
- 6.3 前端開發
- 7. 相關工具
- 7.1 Git
- 7.2 調試
- 7.3 Linux
- 8. 其他需要了解的內容
- 8.1 Python3
- 8.2 Java
- 8.3 數據庫