【问题标题】:Is it possible to create `null` value without actually using `null`?是否可以在不实际使用“null”的情况下创建“null”值?
【发布时间】:2019-04-29 10:09:20
【问题描述】:

我想知道是否可以在不实际使用 null 的情况下创建 null

例如:

code-without-null // 空

我知道的一个技巧是:

JSON.parse(JSON.stringify(NaN)) //null

问题:

还有哪些其他方法可以在不使用null 的情况下获得null

【问题讨论】:

  • 只是出于好奇;为什么需要这样做?
  • @Turnip 昨天我在一个聚会上,一位同事问了这个问题,没有人知道....因此只是好奇

标签: javascript node.js null


【解决方案1】:

你可以匹配一个未给定的模式。

console.log(''.match(/./));

【讨论】:

    【解决方案2】:

    many functions which return null。随意使用它们中的任何一个:

    console.log([
      document.parentElement,
      document.querySelector('does not exist'),
      /foo/.exec('')
    ].every(val => val === null)
    );

    【讨论】:

    • 严格来说 :document.querySelector('does not exist'), ,你永远不知道....也不会在节点中工作
    【解决方案3】:

    如果没有找到任何匹配项,String.prototype.match() function 将返回 null 值。

    来自链接文档的示例:

    var str = 'For more information, see Chapter 3.4.5.1';
    var re = /see (chapter \d+(\.\d)*)/i;
    var found = str.match(re);
    
    console.log(found); // null
    

    作为另一种选择,您可以在浏览器中将不匹配任何元素的选择器传递给.querySelector() function。如果找不到任何匹配项,它也会返回 null。为确保该元素不存在(并将返回null),您可以对为此目的创建的元素执行querySelector 函数:

    var emptyElement = document.createElement("span");
    var element = emptyElement.querySelector("#an-id-that-doesnt-exist");
    console.log(element) // null
    

    【讨论】:

    • 严格来说 :document.querySelector('does not exist'), ,你永远不知道.... 也不会在节点中工作
    • @RoyiNamir - 是的,这是真的 - 你将无法 100% 知道元素是否不存在。
    • @RoyiNamir - 至于不知道元素是否存在,您也可以对您创建的内容执行querySelector - 这样您就可以 100% 知道它不会匹配任何内容。
    【解决方案4】:

    JS 已经根据定义提供了它:

    Object.getPrototypeOf(Object.prototype)
    

    (来自艾伦:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      相关资源
      最近更新 更多