JavaScript中双叹号的使用实例

!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;

经常看到这样的例子:

代码如下:

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。想了解更多知识可以登录e良师益友网学习Javascript教程

时间: 2024-11-06 03:43:29

JavaScript中双叹号的使用实例的相关文章

JavaScript中双叹号(!!)作用示例介绍

http://www.jb51.net/article/48881.htm 经常看到这样的例子: var a: var b=!!a; a默认是undefined.!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利. !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false; 因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类

JavaScript中双叹号(!!)作用

经常看到这样的例子: var a ; var b = !!a; a默认是undefined.!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利. !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false; 因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如: a=parseInt("1234″) a="123

JavaScript中字符串分割函数split用法实例

这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaScript中字符串分割函数split用法.分享给大家供大家参考.具体如下: 先来看下面这段代码: <script type="text/javascript"> var str="How are you doing today?" document.write

解决eclipse中项目叹号问题

转自:http://blog.csdn.net/xiaotaibai2008/archive/2011/04/26/6365334.aspx 你用 myeclipse新建 web工程, 在工程目录下会生成一个 .classpath 配置文件, 里面是你工程里面引用的jar的配置.这个.classpath 对你的web工程没有什么影响 其实是给 myeclipse 识别的. 你说的这种情况是因为 .classpath 文件里面 配置引用了某个jar,但是实际上你的 lib 里面并没有这个jar 所

JavaScript中的单引号和双引号报错的解决方法

在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解决. 例如: Alert("this is test "message"!"); Alert('this is test 'message'!'); 一般会改成以下语句 Alert("this is test /"message/"!&qu

JavaScript中的单引号和双引号解决

在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解决. 例如: [javascript] view plaincopy Alert("this is test "message"!"); Alert('this is test 'message'!'); 一般会改成以下语句 [c-sharp] view plainco

VB中,叹号“!”和“.”的区别

学生信息管理系统中,有这样一条代码 [vb] view plaincopyprint? <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>    txtSQL = "select * from student_Info where Class_No = '" & comboClassno.Text & "'" Set mrc = E

Javascript中Base64编码解码的使用实例

Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数. 例如: 1 2 var encodedStr = window.btoa("Hello world"); //字符串编码 var decodedStr = window.atob(encodedStr); //字符串解码

ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展(实例)

(1)clean var arr = [1,2,null,3,'']; alert(Ext.Array.clean(arr)); //clean的对象:(value === null) || (value === undefined) || (!allowEmptyString ? value === '' : false) || (Ext.isArray(value) && value.length === 0) //结果为1,2,3 (2)difference //difference