首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    不要再滥用可选链运算符(?.)啦!

    前面的属性如果是空值(null或undefined),则result值是undefined,反之如果都不是空值,则会返回最后一个d属性值。...item1 console.log(item1.name) ↑ 第一行代码说明obj或item1可能是空值,但第二行也明显说明不可能是空值,否则依然会抛错,第一行的?.也就没意义了。...,就会想这一串链式属性里,是不是有可能有空值,所以导致了user是空值,没走进if里导致没反应。...,导致页面没有任何反应,js不抛错,console也没有log,后续流程出错了,这时候如果想找原因就会很困难,对代码熟悉还行,如果不是自己写的就只能看代码捋逻辑,如果是生产环境压缩混淆了就更难排查了。...多容易啊,但是我从另外两个角度分析下: 我觉得一个合格的开发应该对自己的代码逻辑很熟悉,应该有责任知道哪些值可能是空值,哪些不可能是空值(并不是说所有,也有大部分了),否则就是对自己的代码了解很少,觉得代码能跑就行

    36340

    不要再滥用可选链运算符(?.)啦!

    前面的属性如果是空值(null或undefined),则result值是undefined,反之如果都不是空值,则会返回最后一个d属性值。...item1 console.log(item1.name) ↑ 第一行代码说明obj或item1可能是空值,但第二行也明显说明不可能是空值,否则依然会抛错,第一行的?.也就没意义了。...,就会想这一串链式属性里,是不是有可能有空值,所以导致了user是空值,没走进if里导致没反应。...,导致页面没有任何反应,js不抛错,console也没有log,后续流程出错了,这时候如果想找原因就会很困难,对代码熟悉还行,如果不是自己写的就只能看代码捋逻辑,如果是生产环境压缩混淆了就更难排查了。...多容易啊,但是我从另外两个角度分析下: 我觉得一个合格的开发应该对自己的代码逻辑很熟悉,应该有责任知道哪些值可能是空值,哪些不可能是空值(并不是说所有,也有大部分了),否则就是对自己的代码了解很少,觉得代码能跑就行

    31320

    递推算法题:令人费解的开关『拉灯』

    游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字 表示一盏开着的灯,用数字 表示关着的灯。...11100 11101 11101 11110 11111 11111 01111 11111 11111 11111 11111 输出样例: 3 2 -1 题解 首先有三点很重要的性质需要说明: 如果按哪些灯确定了...我们发现,第一行想按的灯都按过之后,如果想要让第一行全亮,那么我第二行只能有一种按法,就是按第一行不亮的灯的下面的灯(下面是例子) 第一行状态 10011 (1代表亮的灯) 第二行动作 01100 (...那么,我们怎么保证最后一行(第五行)全亮呢?没法保证! 我们发现,如果一行按法确定了,那么接下来二三四五行的按法和能不能全亮就确定了。...有的话,就返回这个操作数,否则就返回 -1 呗。

    87320

    为什么我建议你只字不差的阅读

    分隔第一行 分隔第二行 分隔第三行 好吧,因为我们一般看「暂停使用」比较多,所以可能有些小伙伴会看成「暂停使用」。然后就疑问了,为什么 4G 信号不好,还不能使用 WIFI?...分隔第一行 分隔第二行 分隔第三行 读者反馈,那我自然要确认一下了。 因为这篇文章我之前也看过,没发现什么大问题。 如果真的有问题,我会去找原作者讨论一下。...但是我第一反应并不是找原作者说你这文章有问题,而是再次阅读一遍读者的留言。 然后,我发现了,他的前提错了,所以虽然后面结论对了,这个也是不成立的。...上面情况的通用处理其实可以分下面几步走: 读者反馈问题,如果看了留言有问题,直接答复。否则,下一步。 文章有代码的,直接运行代码确认。如果有问题,直接答复。否则,下一步。...而且如果你一有问题就找开发人员,那么不断的打断可能也会耽误别人的工作。 个人建议你先查看文档,查看完之后把所有疑问点记下来,然后再统一咨询,这样会好些。

    52120

    IRIS Chronicles 定义 Item Response Type 字段属性

    如果我们对应关系数据库,把上面的症状全部存储到一个表中,那么这里不就是 1 对多的关系了。Related这个就有点绕了。Related 首先和 Multiple 类似,是可以有多条记录。...如果我们有一个数据 需要同时返回这个 Group 中的这 2 个,同时这个 Group 中的数据又是一一对应的,我们就可以说这个返回的数据是 Related。...Related 是一行对应的一行的数据,Related‐multi 在 Related 的基础上每一行对应多行的数据。上面的图片就比较好的说明了我们对返回的数据的限制。...如果 210 对应过敏的反应只有一种的话,那么 200 和 210 都是 Related。但实际上对过敏的反应可能有多钟,比如说对于 Thyme(百里香)的过敏反应有昏睡和发烧。

    9010

    换电脑了?3分钟克隆你的旧基IDEA配置

    激活配置导致的无法再次启动 哈,如果你以前的激活方式是用的代理方式的话,比如用的类似于这种文件JetbrainsCrack-release-enc.jar的方式的话,那你启动要重新在设置代理文件的目录。...不然可能导致找不到文件,让你再次启动时候,点击idea毫无反应,一直点,一直点,一直到没反应,气的你想亲一口石榴,我就遇到这样的问题,我还以为我装的姿势不对,搞得我以为是为系统有问题,且看我来望闻问切。...如果说你不想用这种方式,那么你就直接删除这一行就好了。 如果说还有毛病,还是一直点,一直点,不启动,没感觉,那么我教你上大招。...这样就让IDEA在被点击没反应的时候,其实就是异常的时候自动停止,能看到异常日志信息。最后然后关闭该bat文件,双击运行该程序,你就可以看到IDEA是因为什么异常没启动了。 下面演示一下: ?...网上的解决办法是:使用用一个类似这样的,D:\Java\jdk1.8.0_121目录,可以自己修改前面部分的路径,但是不要修改后面jdk1.8.0_121部分,让他保持默认即可,否则真的就没辙了,我试了好多次

    9.7K20

    EasyC++01,从C++示例程序说起

    很多小伙伴反应想要用C++刷LeetCode,但是对于C++语法不熟悉,对于很多算法和数据结构也不够了解。这就导致了刷题的时候需要四处查询资料,非常的麻烦。...{ using namespace std; cout << "hellworld" << endl; return 0; } 这段代码虽然很短,但几个重要的要素都包含了,如果只是用来刷题...我们一行一行来看。 注释 首先是第一行,第一行表示的C++当中的注释。C语言当中的/**/的多行注释方法同样支持,但为了避免潜在的问题,尽量使用C++类型的注释。...<<符号表示了信息流动的路径,<<符号可以多个叠加连接,比如: cout << "hello" << "world"; endl表示当前输出行的结束,cout遇到endl时会重启一行否则则会接在同一行后面继续输出...当然这不是重点,我们遇到的概率也非常小,如果实在搞不清楚也不用纠结,统一使用endl也行。

    32120
    领券