JS中的“!!”
经常看到这样的例子:
var a;
var b=!!a;
a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利。
!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如:
a=parseInt(“1234″)
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串
其中第1种、第4种为显式转换,2、3为隐式转换
布尔型的转换,javascript约定规则为
false、undefinded、null、0、”” 为 false
true、1、”somestring”、[Object] 为 true
对null与undefined等其他用隐式转换的值,用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于将这些值转换为“等价”的布尔值;
再来看看:
var foo;
alert(!foo);//undifined情况下,一个感叹号返回的是true;
alert(!goo);//null情况下,一个感叹号返回的也是true;
var o={flag:true};
var test=!!o.flag;//等效于var test=o.flag||false;
alert(test);
这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,如果明确设置了变量的值(非null/undifined/0/”“等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。
相关推荐
"js"当然代表JavaScript,一种广泛用于网页和服务器端的编程语言。"Welcome!"可能是指这个库或程序的欢迎部分,或者是一个示例项目的名称。 描述中提到的"网络上最快的JSON解析库"表明,这个软件或库专注于处理JSON...
这个名为"html_css_js_Help-documentation.zip_Help!_html"的压缩包显然包含了关于这些技术的中文帮助文档,特别是针对初学者或者需要快速查找信息的开发者设计的。 HTML(HyperText Markup Language)是网页内容的...
Gulp则是JavaScript的构建工具,用于自动化处理前端任务,如CSS预处理器编译、JavaScript合并、图片优化等。 【描述】"test en web html login" 提示我们这个项目可能包含了Web应用程序的HTML登录界面的测试。这...
"这个资源可能是一个自定义的Web Inspector欢迎界面,包括一个JavaScript文件(WelcomeView.js)用于实现界面逻辑,以及一个可能与特定版本相关的脚本文件(7.5-7.js)。这个界面可能提供用户友好的引导,帮助他们更...
arcgis_js_v411_api ArcGIS API for JavaScript 4.11 To download and install the ArcGIS API for JavaScript and SDK navigate to the ArcGIS API for JavaScript download page and log-in with your Esri global...
JavaScript(简称JS)是一种轻量级的脚本语言,广泛应用于网页和网络应用开发,能够对用户交互进行实时响应,实现动态内容更新。在“JS_js_”这个压缩包中,我们可以推测它包含了一些用于教学或练习的JavaScript代码...
_React_foundwma_mother864_react do"提到了几个关键元素,首先,“foot-goal-master”可能是一个项目的名字,暗示着这个压缩包包含了与足球或目标相关的Web应用程序源代码。"Goal!"可能是应用的核心功能,比如一个...
这个里面存放的是省市区的代码,用于省市区三级联动,value是省市区的区行政代码,希望对你有用!
在本文中,我们将深入探讨Discord.js库、JavaScript编程、以及如何构建和维护一个Discord机器人。 首先,让我们了解**Discord.js**。这是一个流行的Node.js库,用于与Discord API交互,允许开发者创建自定义的...
### 完美的JS验证网址URL:正则表达式详解 #### 一、引言 在Web开发中,经常需要对用户输入的URL进行合法性验证,确保其格式正确无误。本篇文章将详细介绍一种较为完善的JavaScript URL验证方法及其背后的正则...
face++人脸识别Javascript SDK包。
arcgis_js_v27__api
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven Spring root vue.js
js_table分页,利用js分页 比较简单一些吧!!不用再用sql查询出来分页,但是缺点是影响性能!
使用three.js_tween.ts搭建的地铁门3D模型,在html中引入了javascript代_3DSubwayDoor
看过了,这本书对js介绍的很不错!!! Java Script是一种功能强大的基于对象的脚本语言。Java Script程序可以直接嵌入HTML页面。与Web浏览器定义的文档对象模型(DOM)一起使用时,JavaScript可以创建动态 HTML(DHTML...
HTML+CSS+JS实现!!! 21点游戏!!!!HTML+CSS+JS实现!!! 21点游戏!!!!HTML+CSS+JS实现!!! 21点游戏!!!!HTML+CSS+JS实现!!! 21点游戏!!!!HTML+CSS+JS实现!!! 21点游戏!!!!...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级、解释型编程语言,以其灵活性和强大的功能深受开发者喜爱。在"jslearning_javascript_"这个压缩包中,包含了一个名为"jslearning.js"的文件,我们可以从这个...
WinDbg JavaScript脚本作为WinDbg画廊安装克隆存储库 C:> git clone https://github.com/hugsy/windbg_js_scripts在windbg_js_scripts\config.xml ,编辑Setting Name="LocalCacheRootFolder"以反映存储库的本地路径...