财产价值已发生变化但未生效

时间:2014-02-08 10:06:47

标签: javascript function object

<script>

           var Faizan = {
               isSharp: true,
               use: function(){
                 return this.isSharp = "Dangerous"//!this.isSharp;
               }
           };
           console.log(Faizan.use());
           console.log( !Faizan.isSharp, "Verify the value of isSharp has been changed." );
       </script>

上述脚本的输出是 1.Dangerous 的 2.False 第一个输出是非常样本,因为我预期它但第二个输出是出乎意料的错误为什么? 当 isSharp 更改为 Dangerous 然后为什么!Faizan.isSharp 返回False? isSharp值已更改

1 个答案:

答案 0 :(得分:2)

@Sacho说“!”是逻辑NOT运算符,所以:

  p   |  !p
-------------
true  | false 
false | true

在JavaScript中,非空字符串将在测试时评估为true,请参阅下面的示例:

var simpleText = "This is simple text";
if (simpleText) {
  console.log("The value is truthy");
} else {
  console.log("The value is falsy");
}
// => The value is truthy

空字符串将评估为false:

var emptyText = "";
if (emptyText) {
  console.log("The value is truthy");
} else {
  console.log("The value is falsy");
} 
// => The value is falsy

您可以在此处详细了解:http://www.sitepoint.com/javascript-truthy-falsy/

TL; DR

你的陈述!Faizan.isSharp等于!true,等于false。