{"description":"Optional Chaining github.com // before const fooInput = myForm.querySelector('input[name=foo]'); const fooValue = fooInput ? fooInput.value : undefined; // after const fooValue = myForm.querySelector('input[name=foo]')?.value; const obj = { foo: { bar: { baz: 42 } } }; obj?.foo?.bar?.baz; // 42 obj?\u2026","image_url":null,"blog_title":"\u6280\u8853\u63a2\u3057","categories":["JavaScript","babel","tc39"],"provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fabouthiroppy.hatenablog.jp%2Fentry%2F2017%2F06%2F06%2F093715\" title=\"babel\u3078Optional Chaining\u304c\u8ffd\u52a0\u3055\u308c\u308b - \u6280\u8853\u63a2\u3057\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","height":"190","width":"100%","type":"rich","provider_url":"https://hatena.blog","version":"1.0","blog_url":"https://abouthiroppy.hatenablog.jp/","author_url":"https://blog.hatena.ne.jp/about_hiroppy/","author_name":"about_hiroppy","published":"2017-06-06 09:37:15","url":"https://abouthiroppy.hatenablog.jp/entry/2017/06/06/093715","title":"babel\u3078Optional Chaining\u304c\u8ffd\u52a0\u3055\u308c\u308b"}