1、[] ==[]
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、蕉岭网络推广、微信小程序开发、蕉岭网络营销、蕉岭企业策划、蕉岭品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供蕉岭建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
因为数组是引用类型的,两个数组的引用不可能相等,所以值为false
2、'0.00' == 0
数字型字符串与纯数字之间的比较,js会将字符串转换成数字再作比较,转换后的结果是 0.00 == 0 ,所以值为false。
3、'0'1
同上,字符串转换成数字 0 1 ,所以值为false
4、'abc' == 0
这里的字符串'abc'不是数字型字符串,无法转换成数字,将这种类型的字符串与数字做比较时,会先转换成NaN,所以值为false
5、'11''2'
两个数字型字符串之间的比较,进行这种比较时会依次取每个字符转换成ASCII码进行比较,因为'1'的ASCII码小于'2',后面就不用再往下进行比较了。
6、1 == true '1' == true '2' == true
1为true,0为false 这是众所周知的,所以1 == true的值为true。
在js中,字符串和布尔值进行比较的时候,会把布尔值转化成数字类型。所以'1' == true的比较会转换成'1' == 1,值也是为true的。'2' == true的比较会转换成'2' == 1,值必然为false。
但是,!!'2' == true 返回的是true,因为用两个非符号 !! 可以把非空字符串转换成true。
7、== 与 ===的区别
在js中,==表示相等(值相等),===表示恒等(值和类型都要相等)。在用==比较时如果被比较的两者类型不同,会先做类型转换再判断值得大小,如果是===类型和值必须都相等。
在之前我们讨论到布尔运算符
和
||
的时候,我说过它们的结果是布尔值。这样说起来有点过于简单化了。如果你用它们来计算布尔数据类型,它们确实会返回布尔值。但是它们也能用于计算其他的类型的数据,这种时候,返回的就将是其中的一个参数了。
或运算符“||”
真正做的事是这样的:它首先检查一下它左边的参数,如果转换成布尔类型的值后为true,那么就返回左边的参数,否则就返回右边的参数。
仔细想想当运算符两边都是布尔类型的值的时候,是不是这样的。为什么它这样运行?这样运行的结果其实非常实用。我们来看这个例子:
复制代码
代码如下:
var
input
=
prompt("What
is
your
name?",
"Kilgore
Trout");
alert("Well
hello
"
+
(input
||
"dear"));
如果用户按“取消”或者直接关掉prompt对话框,input的值将是null或者“”。这两种情况下,转换成布尔类型的值都是false。那么这时候
input
||
“dear”
这个表达式的意思就是input有值的时候就得到input的值,否则就得到“dear”。这是一个很简单的提供一个默认值的方法。
与运算符
“”
的工作原理类似,但是与
“||”
正好相反。当它左边的参数转换成布尔类型的值为“false”的时候,它就返回那个值,否则返回右边的值。这两个操作符还有一个特点就是,只有在必要的时候,才会计算它右边的表达式的值。在“true
||
X”
这个表达式中,不管X是什么,结果都是true,所以X就不会被计算,如果X有其他的效果,那这个效果也不会产生。“false
X”
也是同样的道理。
复制代码
代码如下:
false
||
alert("I'm
happening!");
true
||
alert("Not
me.");
javascript布尔值显示转换是JavaScript的语法规定。
1.特殊值undefined和null变成false。
2.数字0和NaN变成false。
3.空字符串变成false。
4.所有其他值都变成true。