什么是'';javascript中的语法含义?
我在一个Windows应用商店应用程序示例中遇到了以下代码行什么是'';javascript中的语法含义?,javascript,operators,Javascript,Operators,我在一个Windows应用商店应用程序示例中遇到了以下代码行 if (that.assets[asset].object === null || !!!that.assets[asset].object.canPlayType) { 它使用三个感叹号语法。我做了一些测试(我很确定我错过了一些东西),结果总是一样的。我认为它在某种程度上等同于==和== 谁能解释一下语法意味着什么 我假设它在某种程度上等同于===和!== 不,只有三个“不”操作符,一个“不” 它与相同!(!(!(x)),并且始终
if (that.assets[asset].object === null || !!!that.assets[asset].object.canPlayType) {
它使用三个感叹号语法。我做了一些测试(我很确定我错过了一些东西),结果总是一样的代码>。我认为它在某种程度上等同于==
和==代码>
谁能解释一下代码>语法意味着什么
我假设它在某种程度上等同于===和!==
不,只有三个“不”操作符,一个“不”
它与相同!(!(!(x))
,并且始终等同于单个!x
这简直没有用<代码>
是将任何变量转换为其布尔表示形式的一种有点神秘的方法,但是代码>太傻了。您可以链接任意数量的代码>,但它对任何事情都没有用处
我假设它在某种程度上等同于===和!==
不,只有三个“不”操作符,一个“不”
它与相同!(!(!(x))
,并且始终等同于单个!x
这简直没有用<代码>
是将任何变量转换为其布尔表示形式的一种有点神秘的方法,但是代码>太傻了。您可以链接任意数量的“代码>”在一起,但对任何事情都没有用处。!!!是三重否定,所以它与!:
!true -> false
!!true -> true
!!!true -> false
!!!是三重否定,所以它与!:
!true -> false
!!true -> true
!!!true -> false
这完全回答了你的问题
!!!x可能是一个布尔转换的倒数!!x:
var myBool = Boolean("false"); // == true
var myBool = !!"false"; // == true
“任何非空字符串的计算结果均为true”
所以!!!“假”;/==错误
这个问题不是开玩笑。例如:
function ok(value, message) {
if (!!!value) fail(value, true, message, '==', assert.ok);
}
assert.ok = ok;
编辑:我认为他们这样做是出于代码可读性的原因,出于习惯,因为
编辑:我不知道为什么我5天前下载的Node.js版本仍然存在!!!价值而不是价值!GitHub中的值
编辑:。org的稳定版本,还有!!!值,不稳定的版本具有!价值修正案。这完美地回答了你的问题
!!!x可能是一个布尔转换的倒数!!x:
var myBool = Boolean("false"); // == true
var myBool = !!"false"; // == true
“任何非空字符串的计算结果均为true”
所以!!!“假”;/==错误
这个问题不是开玩笑。例如:
function ok(value, message) {
if (!!!value) fail(value, true, message, '==', assert.ok);
}
assert.ok = ok;
编辑:我认为他们这样做是出于代码可读性的原因,出于习惯,因为
编辑:我不知道为什么我5天前下载的Node.js版本仍然存在!!!价值而不是价值!GitHub中的值
编辑:。org的稳定版本,还有!!!值,不稳定的版本具有!价值修正案。我不敢相信只是。。。用3写有什么用呢!而不是像我说的那样,只有1?没有用。除了模糊处理之外,任何有效的用法都不可能存在。它总是相当于一个代码>。程序员太傻了。这是程序员的@Jongware No,而不仅仅是奇数;正如我所说的,你可以把一个任意的数字连在一起,这对任何事情都没有用处。唯一有用的数字是代码>和代码>,我在回答中提到过。@Geoyws这正是我在回答中所说的<代码>!!!x是的否定词!!x
,但它是无用的,因为它相当于!x
。没有理由使用!!!x
而不是!x
。我不敢相信只是。。。用3写有什么用呢!而不是像我说的那样,只有1?没有用。除了模糊处理之外,任何有效的用法都不可能存在。它总是相当于一个代码>。程序员太傻了。这是程序员的@Jongware No,而不仅仅是奇数;正如我所说的,你可以把一个任意的数字连在一起,这对任何事情都没有用处。唯一有用的数字是代码>和代码>,我在回答中提到过。@Geoyws这正是我在回答中所说的<代码>!!!x是的否定词!!x
,但它是无用的,因为它相当于!x
。没有理由使用!!!x
而不是!这个问题是七个月前提出(并得到回答)的。您的答案显然没有带来太多东西,除了提到像这样的代码以前在Node中,但现在没有。这可以通过一个评论来实现,可能包含一个到你的问题的链接。只发布一次这样的答案是可以理解的,因为发布这样的答案非常接近滥用的底线。请花一些时间阅读,并请不要张贴这样的答案在未来。谢谢。@FrédéricHamidi它仍然用于从Nodejs.org下载的。它仅在v0.11.xx以后版本中实施,只能通过其他渠道使用。@FrédéricHamidi您显然没有阅读链接。尤其是最后一个。这是乔纳森·洛诺夫斯基的评论。在评论之前,请花一段不切实际的时间阅读和理解手头上的所有东西。谢谢你,你可能没有领会我的意思。我已经阅读了这些链接,虽然您可能对它们感兴趣,但它们实际上与这个问题无关(这里的发问者并不关心节点,只询问了!!!
结构)。你也在另一个问题下发布了完全相同的迟交答案,这是一个问题。这是对主要问题IMHO的正确和完美的回答。这个问题是七个月前提出(并回答)的。您的答案显然没有带来太多东西,除了提到像这样的代码以前在Node中,但现在没有。这可以通过一个评论来实现,可能包含一个到你的问题的链接。只发布一次这样的答案是可以理解的,因为发布这样的答案非常接近滥用的底线。P