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...
数字信号处理Javascript_dsp.js_Digital_Signal_Processing_for_Javascript_dsp.js.zip
这个名为"html_css_js_Help-documentation.zip_Help!_html"的压缩包显然包含了关于这些技术的中文帮助文档,特别是针对初学者或者需要快速查找信息的开发者设计的。 HTML(HyperText Markup Language)是网页内容的...
js_of_ocaml, 编译器从OCaml到 Javascript Js_of_ocaml ( jsoo )Js_of_ocaml是一个编译器从OCaml字节码到 JavaScript 。 它使得在JavaScript环境中运行纯OCaml程序成为可能,如浏览器和 Node.js.它很容易安装和使用
_php groupware css js" 暗示这是一个包含PHP组件的压缩包,特别提到了CSS和JS文件,意味着这个组件可能涉及到前端和后端的交互。"Free!"表明这是一套免费的开源解决方案。 【描述】中的"PHP Group Ware"提示我们这...
这是一款常见的JavaScript 网页软键盘插件,提高输入安全性,可设置是否大写的值,并用正则表达式将前后空格 用空字符串替代,给输入的密码框添加新值,定义当前是否大写的状态等功能,这个小键盘的美化完全基石...
JavaScript实现的链接提示效果,实际上内部那个JS文件是jquery的源码。当鼠标划过文字链接时显示对应图片,目前,很多网址大全网站中加入有这项功能,使网址导航更具人性化,当鼠标滑过网址名称的时候,立即显示出该...
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验证方法及其背后的正则...
ArcGIS api for JavaScript官方sdk离线帮助文档3.16版本 arcgis_js_v316_sdk.zip MD5: 9a839a49d41940871c2ae7e9fcef2c1c
face++人脸识别Javascript SDK包。
javascript_分层概念_JS技术理念问题PPT版
一键部署ChatGPT私有代理,由Next.js提供支持_JavaScript_CSS_下载.zip
arcgis_js_v320_sdk.zip ArcGIS api for JavaScript官方sdk离线帮助文档3.20正式版本 MD5: 4925842dc50547b49c0036858435af71