===========================     我所遇到的代码     =========================

   onView(row) {

      this.mailDetail = row.mail_info;

      this.dialogFormVisible = !!row.mail_info;

      // 没有邮件信息时,去服务器查询

      !row.mail_info && querySendDetail({ queue_id: row.queue_id, info_type: 0 }).then((res) => {

        this.mailDetail = res.data.data.info;

        this.dialogFormVisible = true;

      });

    },

在接触vue项目的过程中看到双感叹号的使用,在之前学习过程中多数只会用到单个感叹号!用来判断相应的参数或者value是否存在的情况,此次遇到两个感叹号的时候上网搜索有关双感叹号的应用意义大都无法解决我所遇到的代码,直到看见了这篇文章:

Javascript两个感叹号的用法(!!)_mob604756fda125的技术博客_51CTO博客

然而在请教过同事后又发现此篇文章涉及范围外的一些其他情况,于是有了以下回复:

====================================================================

<script>
var o={flag:true};  
var test=!!o.flag;//等效于var test=o.flag||false;  
 console.log(test);  //返回true
var test2=!!o.flag1;//当里面没有对象时
 console.log(test2);//返回false
var test3=!!b.flag;//当连b这个对象都没有时
 console.log(test3);//返回 b is not defined
</script>
我试了一把,我发现那个写文章的人写的不对 ,变量不存在的时候会报错,但是如果只是属性没有的话就不会报错,返回的是false。所以你那个应该是防止row里没有那个属性的时候报错。

=======================================================================

本篇文章仅供作者学习记录使用。

Logo

前往低代码交流专区

更多推荐