1. 编写代码过程中的问题与解决
1.1 错误:can't read property of undefined(name)
(1)首先定位错误的位置
(2)逐一排查问题:注释代码;debugger;console.log
(3)输出打印:console.log
(4)逐层排查:看看数据是怎么过来的
1.2 错误:接口错误
1.2.1 错误400
请求不被服务端理解,参数类型错误
去看network,看看实际传递的参数是不是预期
看参数的内容和类型:
Content-Type:
application/json
application/x-www-form-urlencoded
multipart/formdate
1.2.2 错误401
(1) 用户未登录
(2)登陆后还报401
登陆的本质:验证客户端身份,后端需要给你一些标识,请求的时候需要带上
这些标识,后端才认为我们登录了
(3)标识类型
cookie:浏览器自动携带
什么时候不携带cookie,axios跨域的时候默认不携带
但是跨域也可以携带cookie,axios中有一个属性:
withCredentials:false, //表示跨域请求时是否需要使用凭证
token:手动携带token
请求头里,按照后端的要求传递token
1.2.3 错误403
登陆了但是没有权限
1.2.4 错误404
地址写错了
如果地址没写错,那可能代理配错了,要考虑清楚请求的真实地址是什么
1.2.5 错误405
请求类型错了
2. 一道小题
[1,2,3].map(parseInt) 的输出是什么?答案:[1,NaN,NaN]
map语法:map(currentValue,index)
parseInt语法:parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整
数, radix 为介于2-36之间的数。
3. 关于TS校验的?和!
3.1 ?
当使用A对象属性A.B时,如果无法确定A是否为空,则需要用A?.B,表示当A有值的时
候才去访问B属性,没有值的时候就不去访问,如果不使用?则会报错
3.2 !
用在变量前表示取反,用在赋值的内容后时,使null和undefined类型可以赋值给其他类
型并通过编译,表示该变量值可空