JavaScript数据类型(一)

来源:互联网 发布:淘宝上网络解锁可靠吗 编辑:程序博客网 时间:2024/05/20 02:51

  本文是对javascript高级程序设计一书的一些整理。
  ECMAScript是JavaScript的核心组成部分,他描述了语言的基本语法和数据类型。
  ECMAScript中有5种简单的数据类型(基本数据类型):Undefined,Null,Boolean,Number和String。还有一种复杂数据类型Object,Object的本质是由一组无序的键值对组成。因为ECMAScript不支持自定义数据类型,所以所有值最后都指向这6中数据类型。下面来介绍一下这6种数据类型。

1.Undefined 类型

  Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个值就是undefined。但如果连声明也没有声明,则会导致报错。

var name;//声明变量获得undefinedconsole.log(name);//undefinedconsole.log(age);age没有声明,控制台报错。

  但有一点要注意即使没有声明变量执行typeof操作都会返回undefined值。

console.log(typeof age);//age没有声明,控制台显示undefined.  

2.Null类型

  Null类型是第二个只有一个值的数据类型,这个特殊值是null。从逻辑角度讲,null值表示一个空指针。这引出一个现象,如下:

var obj = null;console.log(typeof obj);//结果是obj。

  所以如果定义的变量是用来保存对象的,那么最好先将该变量初始化为null。 事实上undefined是派生自null的,所以console.log(null == undefined)的值为true。

3.Boolean类型

  Boolean类型只有两个字面值:true和false。ECMAScript区分大小写所以True与False只是标识符,并不是布尔值。而且true和false与数值不是一回事,true不一定是1,false不一定是0。但是ECMAScript中所有类型的值都有与这两个值等价的值。可以用Boolean()将值转换成Boolean值。

var name = 'zhang';var nameBoolean = Boolean(name);

下面是Boolean()对各种数据类型的转换规则:

数据类型 转化为true的值 转换为false的值 Boolean true false String 任何非空字符串 空字符串 Number 非零数字 0和NAN Object 任何对象 null

4.Number 类型

  Number类型使用IEEE754格式来表示整数和浮点数。最基本的是整数的表示。

4.1整数

十进制数:var num = 42;

  八进制数以0开头,如果后面有一位超过了7则会当十进制解析。并且八进制在严格模式下无效。

var num = 045;//八进制数var num1 = 089;//无效的八进制数,解析成89  

  十六进制数以0x开头,后面跟十六进制数字(0~9和A~F),字母A~F可以大写也可以小写。
var num = 0xf; //十六进制的10。

4.2浮点数

  浮点数就是数值中必须包含一个小数点,并且少数点后面必须至少有一位数字。由于浮点数需要的内存空间是保存整数值的两倍,因此ECMAScript会将一些浮点数转换为整数。如:

var floatNum = 1.1;var floatNum1 = .1;//会被解析成0.1,但最好不要这样写。var floatNum2 = 1.0;//会被转换成整数1var floatNum3 = 1. ;//小数点后没有数字,会被解析成1

  注意浮点数在运算时精确度远远不如整数。如:0.1+0.2的结果并不是0.3,而是0.30000000000000004。所以不要这样做:

if(a + b == 0.3) {//不要这样做。    do something;}

  Number类型中有一个特殊的数值为NaN,他用于表示一个本来要返回数值的操作数并未返回数值的情况。如任何数除以0都会返回NaN。另外NaN有两个特点:1>任何涉及到NaN的操作都会返回NaN。 2>NaN与任何值都不想等,包括NaN本身。NaN == NaN;//false.

  本文暂时先到这里,剩下的会在整理后陆续放出。

0 0
原创粉丝点击