码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript高级程序设计(第2版)

时间:2015-06-02 19:53:13      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

3.4 数据类型

  ECMAScript有5种简单的数据类型,也称为基本数据类型,Undefined、Null、Boolean、Number和String,还有一种复杂数据类型——Object。

3.4.1 typeof操作符

  typeof用来检测给定变量的数据类型,对一个值使用typeof操作符可能返回下列某个字符串:

  “undefined”——如果这个值未定义

  “boolean”——如果这个值是布尔值

  “string”——如果这个值是字符串

  “number”——如果这个值是数值

  “object”——如果这个值是对象或null;

  “function”——如果这个值是函数l;

3.4.2 Undefined类型

  Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。

  例如:

1 var message; 
2 alert(typeof message); //undefined
3 alert(message == undefined); //true

 

  另外,对未定义的变量使用typeof,返回值也是undefined

  例如: 1 alert(typeof ff); //undefined 

3.4.3 Null类型

  Null类型也只有一个值,即null,null值表示一个空对象指针,而这也是使用typeof操作符检测null值时会返回"object"的原因,例如:

  var car = null;
  alert(typeof car); //object

  如果定义的变量准备在将来用于保存对象,那么最好将变量初始化为null,而不是其他值。这样,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用了。

if(car != null){
  //对car对象执行某些操作  
}

3.4.4 Boolean类型

  Boolean类型有2个字面值:true和false。

  对于任何数据类型调用Boolean()函数,总会返回一个Boolean值。例如:

var message = "some string";
var messageAsBoolean = Boolean(message);

  至于返回的值是true还是false,取决于要转换值的数据类型以及实际值,下面给出了各种数据类型及其对应的转换规则:

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 ”“(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a(not application 不适用) undefined

var
message = "some string"; if(message){ alert("Value is true"); }

3.4.5 Number类型

var intNum = 55; //十进制55
var octalNum = 070; //八进制56
var octalNum = 079; //无效的八进制,解析为79(字面值中的数值超出了范围,前导零将被忽略)
var hexNum1 = 0xA; //十进制10

1. 浮点数值

  由于保存浮点数值需要的内存空间是保存整数值的2倍,因此ECMAScript会不失时机地将数值转换为整数值。例如:

var floatNum = 1.; //小数点后面没有数字,解析为1
var floatNum = 10.0; //浮点数值本身表示的就是一个整数,改值会被转换成整数,解析为10

  e表示法,即科学计数法

var floatNum = 3.125e7; //31250000
var floatNum = 3e-7; //0.0000003

  永远不要测试某个特定的浮点数值,例如:

var a = 0.05;
var b = 0.25;
if(a + b == 0.3){ //永远不要做这样的测试
    alert("true");
}else{
    alert("false");
} //输出结果是false

2. 数值范围

  由于内存的限制,ECMAScript并不能保存世界上所有的数值,ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中,在大多数浏览器中,这个值是5e-324,能够表示的最大数值保存在Number.MAX_VALUE中,在大多数浏览器中,这个值是1.7976931348623157e+308。如果某次计算的结果的得到了一个超出JavaScript数值范围的值,如果这个值是负数,则会被转换为-Infinity(负无穷),如果这个数值是整数,则会被转换为Infinity(正无穷)。isFinite()函数可以检测一个数值是不是有穷的。

 

JavaScript高级程序设计(第2版)

标签:

原文地址:http://www.cnblogs.com/hardworkingbee/p/4547365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!