【问题标题】:What does ||| mean in JavaScript?||| 是什么意思在 JavaScript 中是什么意思?
【发布时间】:2017-06-11 08:14:30
【问题描述】:

我已经用谷歌搜索了这个并搜索了 JavaScript 文档,但我找不到任何关于这个运算符的提及:a |ǀ| b

当我自己尝试操作符时出现错误,但是当我运行以下代码时,它运行得非常好:

var a, b = 0; tex = '\u0076\u0061r'
var players, score = 0, x, y, z = 1;
function f(s) {
	var t = 0, r = 0;
    var js = 'window';
    while (t == r) {
    	if (t == 1) {
        	r = s.length;
            return false;
        } else {
        	t += 1;
        }  for (var i = 0; i < 20; i++) {
        	r = 20;i+=9000;eval(s); x = 50; y =+ 8;
            z = -20; y = s;
        }
        if (r < 20) {
        	return t + 2;
        }}
	    return true;
	} while (f(tex + ' \u01C0='+'0') && score < 900) {
	score = 9000.0001;}eval(y); a = 1; b += a;
	x = 50;{y =+ 8;
}

// testing:
document.writeln(false |ǀ| false); // 0
document.writeln(false |ǀ| true);  // 1
document.writeln(true  |ǀ| false); // 1
document.writeln(true  |ǀ| true);  // 1

更改 a 和 b 的值会表明它像 || 一样工作,但我只是无法弄清楚为什么它可以与以前的代码一起工作,但不能单独工作。有谁知道这里发生了什么?

【问题讨论】:

  • 老实说,关于诡异神秘行为的问题确实是在浪费时间。这里绝对没有实用价值;这是一个客厅把戏。
  • @Pointy 我觉得这个特别有趣:-)

标签: javascript operators


【解决方案1】:

它不是运算符。这是| 运算符,两次,中间有一个“拉丁字母'Dental Click'”字符。该字符在 JavaScript 标识符中有效。因此表达式:

false |ǀ| false

(可能)与

的意思相同
false | undefined | false

因为没有名为ǀ 的实变量。 (edit——实际上可能有,否则你会得到一个引用错误。)

|(按位或)运算符将其操作数视为数字,falseundefined 都变为 0

f() 函数定义了一个名为 ǀwindow 属性。

【讨论】:

  • 不清楚为什么它变成undefined而不是引用异常。
  • @zerkms 我也不确定为什么这是真的。它可能实际上在OP的实际代码中定义的。
  • 他们的代码有效,但没有定义。所以这是另一回事:-)
  • @zerkms 看看那个函数;它用window 做了一些可疑的事情,我内心的夏洛克说那个可疑的东西正在定义一个名为ǀ 的属性。
  • 你们这些孩子和你们的花言巧语
猜你喜欢
  • 2015-07-15
  • 2018-07-17
  • 1970-01-01
  • 2011-04-16
  • 2011-06-20
  • 2013-11-02
  • 2011-08-12
  • 2018-03-05
  • 2023-03-27
相关资源
最近更新 更多