代码类:
温故
['1','2','3'].map(parseInt) //这个的结果
结果是:[1,NaN,NaN]
map产生两个参数,一个是当前遍历数组的其中单个对象,第二个参数是遍历数组的index。parseInt可传入两个参数,一个是要解析的值,第二个是解析的值的进制,也就是基数,如果是0则为10进制,2就是2进制,注意基数不同对应传入的值也要不同,比如基数为2,则传入的数的形式得是2进制的数才行。parseInt会返回一个根据基数进行转化的十进制的数
知新
解析 URL 参数为对象
答案:
function parseURL(url){
if (typeOf(url) !== "string") return [];
else {
const paramsMap = decodeURIComponent(url).split("?")[1].split("&");
const params = []
paramsMap.map(item=>{
if (item.indexOf("=") > -1){
const [key,value] = item.split("=")
params[key] = value
}else {
params[item] = true
}
})
return params
}
}
常识类:
温故
js判断数据类型的四种方法
- typeof 只能判断string,number等简单类型,无法判断Function,Object等引用类型以及null(此时结果为Objecct)
- instranceof 能判断引用类型中的Function和Object等引用类型,但是对基础的数据类型没有效果
- constructor 能判断大部分的数据,但是遇到null和undefined的时候,这两个没有对应的构造器,没办法判断
- toString 万能药水 Object.prototype.toString.call(xxx) 此时得到的就是一个包含该类型信息的字符串
数组的常用方法
isArray: 判断是不是数组
toString: 将数组变成字符串,会进行一层扁平化
slice: 将给定的index将数组切分,不改变数组本身,返回切成的两个数组,slice(-1)可以用来做浅拷贝
splice: 插入或者删除数组中的参数,splice(1)就是删除数组中第3个参数之前的数据,splice(3,4) 就是删除第4个参数开始,第五个参数结束长度的数组,每次返回删除的数组,留下被操作后的数组,第三个参数是表示插入的数据,写几个从起始位置就插入几个
map,reduce,forEach,filter等: 遍历的各种方法,有的有返回值,有的传入fn
some和every: 返回boolean,判断数组中是否符合对应的fn
join: 根据join中写的参数,连接数组,返回一个str
concat: 连接给的多个数组
知新
ajax的过程?
//直接上代码
const requset = new XMLHttpRequest();
requset.open("GET",url,"true")
requset.send();
requset.onreadystatechange = ()=>{
if(requset.readystate === 4 && requset.status === 200){
//此时写返回成功要进行的操作
console.log(request)
}
}
status状态码?
2xx :成功
3xx :页面重定向,一般也能显示页面
4xx :给定的url错误
5xx :服务器错误