# 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 数据库