在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: 它看起来像两个零原谅运算符。有相关文件吗?