首页 > 语言 > JavaScript > 正文

javascript基本数据类型和转换

2024-05-06 15:09:43
字体:
来源:转载
供稿:网友

ECMAScript中有5种基本数据类型:Undefined、Null、Boolean、Number、String。还有1种复杂数据类型—Object,Object实质上是由一组无序的名值对(键值对)组成的。ECMAScript不支持任何创建自定义类型的机制。

由于ECMAScript是松散型的,所以需要一种手段来检测变量的数据类型,typeof就是具有这种功能的操作符。用typeof检测变量可能返回以下某个字符串:

"undefined" 变量未定义
"boolean" 变量是布尔值
"string" 变量是字符串
"number" 变量是数值
"object" 变量是对象或者null
"function" 变量是函数

从技术的角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而,函数有一些特殊的属性,因此通过typeof来区分函数和其它对象是有必要的。

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

var a;alert(a == undefined);  //true

不过,包含undefined值的变量和尚未定义的变量不一样,如:

var a; // 这个变量声明之后默认取得了undefined值// 下面这个变量并没有声明// var balert(a);  // "undefined"alert(b);  // 产生错误

然而对未声明或者声明没有初始化的变量使用typeof都会返回undefined,如:

var a;// var b;alert(typeof a); // "undefined"  alert(typeof b); // "undefined"

Null类型也只有一个值,就是null。从逻辑的角度来看,null值表示一个空指针,所以用typeof检测null值会返回"object",如:

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

所以如果要定义变量来存放对象,最好将该变量初始化为null。实际上,undefined值是继承自null值的,所以判断它们的相等性会返回true:

alert(null == undefined);     // true

尽管null和undefined有这样的关系,但它们用途是完全不同的,因为无论什么时候都没有必要把一个变量的值显示的设置为undefined,然而当定义一个还未保存对象的对象变量时,就应该将变量设置为null,这样不仅可以体现null作为空对象的指针,还有能很好地区分null和undefined。

Boolean类型有两个字面值:true和false,但是ECMAScript中所有类型的值都能调用Boolean()函数转换成Boolean类型的值,下表列出了各种数据类型对应的转换规则:

数据类型 转换为true的值 转换为false的值
Boolean true false
String  任何非空字符串 ""空字符串
Number 任何非零数字值 0和NaN
Object 任何对象 null
Undefined /
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表