存放日常开发所撰写的Markdown文件。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.8 KiB

Question :

current_userInfo?.apiToken 这是什么写法?

Answer :

这是可选链语法,它是 JavaScript ES2020 中新增的一种语法。可选链语法允许在进行属性访问、函数调用和数组索引操作时,对前面的变量进行空值(null 或 undefined)判断,以避免出现 TypeError 错误。具体来说,如果访问的对象不存在,则不会继续访问其属性,而是直接返回 undefined。这种语法的一般形式为:

object?.property
object?.method()
array?.[index]

在这里, current_userInfo?.apiToken 表示对 current_userInfo 对象进行访问,如果 current_userInfo 不存在或其 apiToken 属性不存在,则直接返回 undefined 。这种写法可以避免因空值导致的程序崩溃,并且可以编写更简洁、安全和可读性更好的代码。


Question :

service.defaults.headers['apiToken'] = current_userInfo?.apiToken ? current_userInfo.apiToken : null 这句代码怎么理解?

Answer :

这句代码的主要作用是设置 axios 请求头部的 apiToken 值,以便服务器能够识别当前用户。具体来说,该代码使用了 axios 实例的 defaults.headers 属性来设置请求头部信息。 current_userInfo?.apiToken 用于获取 current_userInfo 中的 apiToken 值,其中 ?. 是可选链语法,用于判断 current_userInfo 是否存在,不存在则返回 undefined? : 是条件运算符,当 current_userInfo?.apiToken 存在时,将该值赋给 service.defaults.headers['apiToken'] ,否则将 null 赋给 service.defaults.headers['apiToken'] 。该代码在请求拦截器中被调用,因此每次请求都会刷新请求头部的 apiToken 值,以保证用户信息的准确性和安全性。