【问题标题】:An example of a logical opposite value of a variable in javascriptjavascript中变量的逻辑相反值的示例
【发布时间】:2012-08-25 08:21:03
【问题描述】:

我正在尝试了解 javascript 中的一元运算符,并在http://wiki.answers.com/Q/What_are_unary_operators_in_javascript 找到了此参考指南,我了解大多数示例,但我正在尝试弄清楚如何使用它:

!a; // Logical opposite of a in an example.

例如,如果我这样做:

a = true;
!a;
document.writeln(a);

我认为这是错误的,但它输出的是真的。

什么是一个很好的代码示例,我可以使用类似于 !a 的东西来看看它是如何工作的?

【问题讨论】:

    标签: javascript unary-operator


    【解决方案1】:

    您没有将!a 分配给任何变量。 a 仍然正确。

    你想做的是这个,

    a = true;
    a = !a;
    document.writeln(a);
    

    【讨论】:

    • 这绝对是有道理的,但是我从我列出的那个页面 (http://wiki.answers.com/Q/What_are_unary_operators_in_javascript) 中不明白的是,据我所知,大多数“一元运算符”允许您更改值而不将它们分配给值。例如,如果您执行a=0; a++; document.writeln(a); a will = 1。我在想他们可以单独操作的事实使之成为一元运算符,但也许事实并非如此?
    • 是的,对于 a++、a--、++a、--a 来说都是如此。但不适用于 !a、+a、-a。
    • 对于 a++、a--、++a、--a 的作用是否有技术术语/名称?换句话说,以独立方式改变其价值的东西?
    • 并非如此,但除了涉及赋值的运算符之外,这些运算符只有side effects
    【解决方案2】:

    正如 Evil_skunk 所说,您不存储值。所以你必须这样做:

    document.writeln(!a);
    

    或者这个:

    a = !a;
    document.writeln(a);
    

    【讨论】:

      【解决方案3】:
      a = !a;
      

      您没有将!a 的结果分配给变量。试试这个。

      【讨论】:

        【解决方案4】:

        !a的值是false,但是你没有保存a的新值,所以输出的a还是true

        试试:

        document.writeln(!a);
        

        【讨论】:

          猜你喜欢
          • 2021-11-09
          • 1970-01-01
          • 2021-12-14
          • 2015-07-25
          • 1970-01-01
          • 2012-07-02
          • 2011-02-02
          • 1970-01-01
          • 2017-07-25
          相关资源
          最近更新 更多