读了会 axios 源码,虽然云里雾里,但是我想到了三个有趣的对比

源码阅读

最近翻来了 axios 源码,信心满满的看了会,虽然哪跟哪都没串起来,但是意外收获了一些新的想法。

有几组不错的知识点,对比看,比单独看每个知识点,更有趣一些。

遇到有趣的知识点,当然要分享一下。

文章速读

本文从 axios 的源码联想到了几个不错的知识点对比。

阅读文章,可以有以下收获:

知识点对比开始

delete or undefined, 谁是更好的选择?

技术讨论小剧场

一:这里为什么要用 delete 删除这个属性。

某:因为异步请求里不能带上这个属性。

一:把值设置成 undefined,JSON.stringify 方法会过滤掉值为 undefined 的对象属性。

某:这个方法好像挺不错的。等等,我要是没有用到 JSON.stringify 方法呢?

一:写个判断方法。

某:键盘已递上。

undefined 值的判断方法

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

const val = undefined;
const val2 = 2;
isUndefined(val) // true
isUndefined(val2) // false 

某:怎么写的这么快!

一:当然了,这可是 axios 源码里采用的方法。

某:所以结论就是,推荐将对象的值设置为 undefined,而不是delete 它。

一:是的。

某:再讲点 delete 的知识点。这个操作符,我还不太熟悉。

一:这个可以有。正好可以正向思维和逆向思维齐上阵。

delete 删除了什么?

删除对象的某个属性

我们会按照 MDN 文档定义的那样,「delete 操作符用于删除对象的某个属性」,先来尝试删除对象的属性:

var obj = {nam
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值