JavaScript怪异的类型
typeof运算符可以用来检查类型,如:
var car = {
model:"baba",
color:"red"
};
alert(typeof car);
结果是object。
1.undefined
对于任何未初始化的东西,都会将undefined赋给它,undefined的类型是undefined,是不是很怪异。
可以将变量赋为null,如var minicar = null;这个null与undefined是不是有点重复呢?其实,JavaScript刚出来时,认为要用一个值(undefined)表示变量还未初始化,用另一个值(null)表示没有对象可赋给变量。所以,记住它们各自的用途就好。
(1)undefined用于表示变量未初始化,typeof undefined的结果是undefined。
(2)null用于表示对象不存在,typeof null的结果是object。
2.NaN
JavaScript使用NaN,Not a Number的缩写,表示它无法表示的数值结果。NaN是不是你很怪异。它还有一个更怪异的地方,NaN不仅用于表示所有无法表示的数值,还是JavaScript中唯一一个与自己不相等的值!
if(NaN != NaN){ //他们真的不相等
alert("我们真的不想等!");
}
NaN的正确用法
NaN与任何东西,包括它自己都不相等,因此不能以任何方式检查变量与NaN是否相等,除了使用特殊函数isNaN.
if(isNaN(myNum)){
alert("myNum said:"I am really a number");
}
事实上,NaN是一个很糟糕的名字,与其称之为“不是数字”,还不如称之为“无法表示的数字”。typeof NaN的结果是number
在JavaScript中,infinity指的任何超过浮点数上限而言,-infinity指的任何超过浮点数下限而言,怪异的地方就是infinity-infinity的结果是NaN。
比较
告诉你们一个大事实:“99” == 99 是相等的。为什么可以这样呢?JavaScript会按以下规则来比较:
(1)如果两个值的类型相同,就直接进行比较。
(2)如果两个值的类型不同,则尝试将它们转换为相同的类型,再进行比较。
如果将布尔值和数字、null和undefined或其他值进行比较呢,JavaScript会作如何转换,然后再进行比较呢?其实,JavaScript规范包含一套非常简单的规则,指定了对两个不同类型的值进行比较时,将如何进行转换,如果你能记住这些规则,你就能掌握JavaScript比较的工作原理,其他类型的编程语言通常不自动进行转换,而JavaScript则会自动转换。
相等符号有两个"=="(相等)和“===”(严格相等)。**===(严格相等)涉及的规则只有一条:当且仅当两个值的类型和值都相同时,它们才严格相等。**同样也有!==和!=,但前者比后者严格。
3.JavaScript将视以下五个值为false
(1)undefined
(2)null
(3)0
(4)空字符串
(5)NaN
谢谢阅读。
上一篇: 有趣的NaN类型
下一篇: Luasql mysql安装错误解决
推荐阅读
-
JavaScript怪异的类型
-
java中Double类型判断值是否为NaN的四种方法
-
有趣的NaN类型
-
Java中的NaN类型
-
javascript:void(0)和#在超链接中使用的不同 博客分类: JavaScript javascript:;href链接javascript:void(0);锚点
-
超全超实用的Javascript类库和jQuery插件大全之二:文字处理,表格和列表处理,实用的javascript开发工具 javascriptjquery插件表格列表字体处理
-
验证数字的正则表达式集 博客分类: javascript
-
jQuery 可编辑的表格 博客分类: javascript jQuery可编辑表格
-
js打开新窗口的方式 博客分类: javascript jsjavascript窗口
-
string类型转int类型的三种方法速率比较