You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

无需使用null关键字,还有哪些方法可生成null值?

不使用null关键字生成null值的方法

嘿,这个问题挺有意思的!确实有不少不用写null关键字就能得到null值的技巧,我整理了几种不同场景下的方法,咱们来看看:

  • JSON序列化特殊数值后解析
    这是你已经发现的技巧,利用JSON规范对特殊数值的处理:

    JSON.parse(JSON.stringify(NaN)) // 返回 null
    JSON.parse(JSON.stringify(Infinity)) // 同样返回 null
    JSON.parse(JSON.stringify(-Infinity)) // 也能得到 null
    

    原因是JSON格式不支持NaNInfinity-Infinity,序列化时这些值会被转为"null",解析后就得到了null值。

  • 正则表达式匹配失败时的返回值
    正则的exec方法或者字符串的match方法,当完全匹配不到目标内容时,都会返回null:

    /abc/.exec('def') // 匹配失败,返回 null
    'xyz'.match(/123/) // 同样返回 null
    
  • 浏览器DOM查询找不到元素时的返回值
    在前端浏览器环境中,很多DOM查询API找不到对应元素时会返回null:

    document.querySelector('#element-that-does-not-exist') // 返回 null
    document.getElementById('non-existent-id') // 也返回 null
    
  • 获取无原型对象的原型
    Object.create(null)可以创建一个没有原型的对象,调用getPrototypeOf方法获取它的原型时,就会得到null:

    Object.getPrototypeOf(Object.create(null)) // 返回 null
    Reflect.getPrototypeOf(Object.create(null)) // 同样返回 null
    

内容的提问来源于stack exchange,提问作者Royi Namir

火山引擎 最新活动