当前位置: 首页 > 编程笔记 >

javascript中2个感叹号的用法实例详解

赫连子石
2023-03-14
本文向大家介绍javascript中2个感叹号的用法实例详解,包括了javascript中2个感叹号的用法实例详解的使用技巧和注意事项,需要的朋友参考一下

在javascript代码中经常会见到!!的情况,本文即以实例形式较为深入的分析javascript中2个感叹号的用法。分享给大家供大家参考之用。具体分析如下:

javascript中的!!是逻辑"非非",即是在逻辑“非”的基础上再"非"一次。通过!或!!可以将很多类型转换成bool类型,再做其它判断。

一、应用场景:判断一个对象是否存在

假设有这样一个json对象:

{ color: "#E3E3E3", "font-weight": "bold" }

需要判断是否存在,用!!再好不过。

如果仅仅打印对象,无法判断是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(temp);

结果:[object: Object]

如果对json对象实施!或!!,就可以判断该json对象是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!temp);

结果:false

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!!temp);

结果:true

二、通过!或!!把各种类型转换成bool类型的惯例

1.对null的"非"返回true

var temp = null;
alert(temp); 

结果:null

var temp = null;
alert(!temp); 

结果:true

var temp = null;
alert(!!temp); 

结果:false

2.对undefined的"非"返回true

var temp;
alert(temp);

结果:undefined

var temp;
alert(!temp);

结果:true

var temp;
alert(!!temp);

结果:false

3.对空字符串的"非"返回true

var temp="";
alert(temp);

结果:空

var temp="";
alert(!temp);

结果:true

var temp="";
alert(!!temp);

结果:false

4.对非零整型的"非"返回false

var temp=1;
alert(temp);

结果:1

var temp=1;
alert(!temp);

结果:false

var temp=1;
alert(!!temp);

结果:true

5.对0的"非"返回true

var temp = 0;
alert(temp);

结果:0

var temp = 0;
alert(!temp);

结果:true

var temp = 0;
alert(!!temp);

结果:false

6.对字符串的"非"返回false

var temp="ab";
alert(temp);

结果:ab

var temp="ab";
alert(!temp);

结果:false

var temp="ab";
alert(!!temp);

结果:true

7.对数组的"非"返回false

var temp=[1,2];
alert(temp);

结果:1,2

var temp=[1,2];
alert(!temp);

结果:false

var temp=[1,2];
alert(!!temp);

结果:true

相信本文所述对大家的javascript程序设计的学习有一定的借鉴价值。

 类似资料:
  • 在Kotlin中,单个感叹号意味着什么?我见过几次,特别是在使用Java API时。但我在文档中和StackOverflow上都找不到它。

  • 问题内容: 查看数据库中的V $ SQL,我刚发现一个奇怪的查询,看起来像: 有人知道语法@!的含义吗? 我以前从未在Oracle中见过类似的东西 谢谢 问题答案: 这是源自远程数据库的查询。使用@DB_NAME语法在远程数据库上的查询中引用了您在V $ SQL中看到此查询的数据库 远程数据库已将查询推送到您的数据库中以便执行,但是要回答该查询,您的数据库需要从远程数据库中拉回一些信息。这是@!进

  • 问题内容: 我正在阅读此查询,遇到了我不明白的那一行 FETT列表是一个表 FETT搜索是FETT列表中的一列 有人可以解释感叹号的含义吗? 谢谢 问题答案: 通常,您会在MS Access代码中看到此信息(对于感叹号,这是SQL Server的句点)。您可以通过table.column来引用列,或者如果为表赋予别名,则可以通过alias.column来引用。如果要在使用联接时特定于表,则可以执行

  • 问题内容: 我刚刚注意到,我所有的路径中的井号(#!)后都有一个感叹号。我不确定如何以及为什么获得它们,因为今天早些时候我没有它们。 如果有什么办法可以摆脱它们,那么如果有人可以向我解释一下(以及我如何拥有它们),我将不胜感激。 因此,到目前为止,我发现的唯一解决方案是手动将感叹号放在应用程序中的每个href上,但这使我很烦,我也不知道该怎么办。 我用yeoman生成器生成了我的应用,而我的app

  • 问题内容: !function () {}(); 问题答案: JavaScript语法101。这是一个 函数声明 : 请注意,这里没有分号:这只是一个函数 声明 。您将需要调用来实际运行该功能。 现在,当我们添加看似无害的感叹号时:它将变为 表达式 。现在它是一个 函数表达式 。 该单独不会调用函数,当然,但我们现在可以把结尾:它的优先级高于并立即调用函数。 因此,作者正在做的是为每个函数表达式保

  • 从…起https://source.dot.net/#System.Private.CoreLib/Hashtable.cs,475: 它看起来像两个零原谅运算符。有相关文件吗?