首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何优雅判断属性

假设我们现在需要取出 a.b.c,但是并不清楚它们是否都存在,那么代码会写成这样: if (a && a.b) { const c = a.b.c } 其实这样的代码在项目中出现的频率是很高的,如果需要取的层级过深的话...undefined : a.b.c 虽然编译后的代码看着有点啰嗦,但是确实很优雅的解决了判的问题。...不过可选链在某些场景下还是存在坑的,比如如下代码: const a = { b: { c: false } } 假如说我们希望在取值 a.b.c 中给 c 设置一个默认 true /...c || true 但是在这个场景下就会出现 Bug,预期是 false,结果答案 true。 解决这个问题也很简单,再引入一个新语法双问号即可。...这个语法的作用和 || 是类似的,但是只有当取值 null 或者 undefined 时才会使用默认。 // false const c = a?.b?.c ??

4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 中NULL和的区别?

    01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和。那你知道它们有什么区别吗? 学不动了,也不想知道它们有什么区别。...---- 面试官:你有用过MySQL吗? 小木:有! 面试官:那你能大概说一下Mysql中 NULL的区别吗?...NULL列需要行中的额外空间来记录它们的是否NULL。 通俗的讲:就像是一个真空转态杯子,什么都没有,而NULL就是一个装满空气的杯子,虽然看起来都是一样的,但是有着本质的区别。...1、不占空间,NULL占空间。当字段不为NULL时,也可以插入。...2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者 NULL 的,不能查出

    2.6K10

    mysql与NULL的区别

    陷阱一:不一定为   是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,往往代表不同的含义。这是MySQL数据库的一种特性。如在普通的字段中(字符型的数据),就是表示。...但是如果将一个的数据插入到TimesTamp类型的字段中,就不一定为。此时出现什么情况呢   我先创建了一个表。...其实这就是在MySQL数据库中执行SQL语句时经常会遇到的一个陷阱:不一定为。在操作时,明明插入的是一个的数据,但是最后查询得到的却不是一个。   ...如对于电话号码等字段,可以默认设置(表示根本不知道对方的电话号码)或者设置空字符(表示后来取消了这个号码)等等。由于他们在数据库中会有不同的表现形式,所以数据库管理员需要区别对待。...如果要判断某个字段是否含用的数据,需要使用特殊的关键字。其中前者表示这个字段,后者表示这个字段。在Select语句的查询条件中这两个关键字非常的有用。

    3.6K70

    MySQL中的ifnull()函数判断

    比如说判断的函数,在Oracle中是NVL()函数、NVL2()函数,在SQL Server中是ISNULL()函数,这些函数都包含了当值的时候将返回替换成另一个的第二参数。...但是在MySQL中,ISNULL()函数仅仅是用于判断的,接受一个参数并返回一个布尔,不提供当值的时候将返回替换成另一个的第二参数。...SELECT ISNULL('i like yanggb'); // 0 SELECT ISNULL(NULL); // 1 因此MySQL另外提供了一个IFNULL()函数。...简单介绍 IFNULL()函数是MySQL内置的控制流函数之一,它接受两个参数,第一个参数是要判断的字段或(傻?),第二个字段是当第一个参数是的情况下要替换返回的另一个。...简单示例 SELECT IFNULL(NULL, 'i like yanggb'); // i like yanggb 在上面的例子中,由于第一个参数NULL,所以返回的是第二个参数的

    9.8K10

    mysql (null)和空字符()的区别

    空字符('')和(null)表面上看都是,其实存在一些差异: 定义: (NULL)的长度是NULL,不确定占用了多少存储空间,但是占用存储空间的 空字符串('')的长度是0,是不占用空间的 通俗的讲...(null)并不会被当成有效去统计。 同理,sum()求和的时候,null也不会被统计进来,这样就能理解, 为什么null计算的时候结果,而sum()求和的时候结果正常了。...带有null的默认还是可以走索引的,只是会影响效率。当然,如果确认该字段不会用到索引的话,也是可以设置null的。...在设置字段的时候,可以给字段设置 not null ,因为 not null 这个概念和默认是不冲突的。...我们在设置默认('')的时候,虽然避免了null的情况,但是可能存在直接给字段赋值null,这样数据库中还是会出现null的情况,所以强烈建议都给字段加上 not null。

    3.2K30

    类型

    有一点需要强调:当null用于可类型时,它表示HasValuefalse的可类型的,而不是null引用。null引用和可类型不容易辨明,例如以下两行代码是等价的: int?...对于一元操作数和二元操作数,返回类型也成为可类型。如果任意一个操作数null,那么返回null。等价运算 和关系运算符可以保证返回类型是非可的布尔型。...该运算符的返回一个可类型的:当原始引用的类型null或与目标类型不匹配时,返回null,或者返回一个有意义的,示例如下:static void PrintValueAsInt32(object...最后,C# 2还引入了一个全新的运算符,用于优雅地处理null合并运算符?? 在实际编码中,总会有使用可类型的需求:当一个表达式运算结果null时,变量提供一个默认。C# 2引入了??...z,如果x空就计算y;如果x和y都为,就计算z。 C# 6引入了条件运算符?.(详见10.3节),该运算符便利了作为表达式结果的处理。在代码中把?.和??

    2.3K30
    领券