gpt4 book ai didi

Javascript boolean 运算符混淆

转载 作者:行者123 更新时间:2023-11-30 20:06:41 26 4
gpt4 key购买 nike

我有几行javascript代码如下:

var str = '////';
var re = /^\/+$/g
console.log(str && re.test(str), str && !re.test(str));

代码在 Node.js 中的输出是 false, false 而在 Chrome 客户端中是 true, true

我很困惑,谁能帮助理解:

  1. 为什么这两个 boolean 语句都被评估为 truefalse 而它们本来是相反的?
  2. ChromeNode.js 在计算这两个 boolean 语句时有什么区别?

最佳答案

我认为这似乎不是一个答案,但是Node.js特此输出:

true true

这是一个终端控制台。

PS E:\DevRoom\Kindy> node
> str = '////'
'////'
> re = /^\/+$/g
/^\/+$/g
> console.log(str && re.test(str), str && !re.test(str))
true true
undefined
>

enter image description here

我敢打赌,这是因为重新使用了全局正则表达式。

var regex1 = RegExp('foo*');
var regex2 = RegExp('foo*','g');
var str1 = 'table football';

console.log(regex1.test(str1));
// expected output: true

console.log(regex1.test(str1));
// expected output: true

console.log(regex2.test(str1));
// expected output: true

console.log(regex2.test(str1));
// expected output: false

关于Javascript boolean 运算符混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com