JS中六种数据类型(一)——undefined

JS中有6种数据类型:Undefined、Null、Boolean、Number、String和Object。JS中不支持任何创建自定义类型的机制,而所有值最终都将是这6种数据类型。其数据类型的动态性特点足以表示所有数据。

(typeof返回的是字符串有六种可能:"number","string","boolean","object","function","undefined")。

我们先来看看Undefined这个数据类型吧,Undefined类型只有一个特殊的值——undefined。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

例如:

var color;

alert(message == undefined);//true

这个例子只声明了变量color,但未对其初始化。比较这个变量与undefined字面量,结果表明它们是相等的。这个例子与下面的例子是等价的:

var color = undefined;

alert(color == undefined)  ;//true

不过,包含undefined值的变量与尚未定义的变量还是不一样的:

var color ;//变量声明之后默认取得undefined值

//未声明的变量

//var age

alert(color);   //"undefined"

alert(age);    //产生错误

然而,对未初始化的变量执行typeof操作符会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值。

var color;//变量声明之后默认取得undefined值

//未声明的变量

//var age

alert(typeof color);  //"undefined"

alert(typeof age);   // "undefined"

结果表明,对未初始化和未声明的变量执行 typeof 操作符都返回了 undefined 值;这个结果有其逻辑上的合理性。因为虽然这两种变量从技术角度看有本质区别,但实际上无论对哪种变量也不可能执行真正的操作。

时间: 2024-10-10 06:24:39

JS中六种数据类型(一)——undefined的相关文章

JS中六种数据类型(一)——undefined (转)

JS中有6种数据类型:Undefined.Null.Boolean.Number.String和Object.JS中不支持任何创建自定义类型的机制,而所有值最终都将是这6种数据类型.其数据类型的动态性特点足以表示所有数据.JS提供typeof操作符来检测变量的数据类型. (typeof返回的是字符串有六种可能:"number","string","boolean","object","function",&

JS中六种数据类型(三)——Boolean (转)

Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面值:true和false.这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0.需要注意的是,Boolean类型的字面值true和false是区分大小写的.也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符. 虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值. var message=

JS中六种数据类型(四)——Number (转)

Number类型应该是ECMAScript中最令人关注的数据类型了,这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值).为支持各种数值类型,ECMA-262定义了不同的数值字面量. 最基本的数值字面量格式是十进制整数,十进制整数可以像下面这样直接在代码中输入: var  item =55;   //整数 除了以十进制表示外,整数还可以通过八进制(以8为基数)或十六进制(以16为基数)的字面值来表示.其中,八进制字面值的第一位必须是零(0),然后是八进制数

JS中六种数据类型(二)——Null (转)

Null类型是第二个只有一个值的数据类型,这个特殊的值是null,从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回"object"的原因,如下面的例子所示: var car =null; alert(typeof null);  //object(其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来) 如果定义的变量准备在将来用户保存对象,那么最好将该变量初始化为null而不是其他值.这样一来,只要直接检查

JS中六种数据类型(五)——String (转)

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.字符串可以由双引号(")或单引号(')表示,因此下面两种字符串的写法都是有效的: var firstName="Marry"; var firstName='Jane'; 与PHP中的双引号和单引号会影响对字符串的解释方式不同,ECMAScript中的这两种语法形式没有什么区别.用双引号表示的字符串和用单引号表示的字符串完全相同.不过,以引号开头的字符串也必须以双引号结尾,而以单引号开头的字符

JS中六种数据类型(二)——Null

Null类型是第二个只有一个值的数据类型,这个特殊的值是null,从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回“object”的原因,如下面的例子所示: var car =null; alert(typeof null);  //object(其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来) 如果定义的变量准备在将来用户保存对象,那么最好将该变量初始化为null而不是其他值.这样一来,只要直接检查null值

JS中六种数据类型(六)——Object(转)

ECMAScript中的对象是可变的键控集合(即一组数据和功能的集合).它将很多值聚合在一起,可通过名字访问这些值.对象也可看做属性的容器,每个属性都是一个名/值对.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除undefined值之外的任何值.对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerate)他的属性.  一.属性类型 ECMA-262第5版在定义只有内部采用的特性时,描述了属性的各种特征

JS中六种数据类型(六)——Object

   ECMAScript中的对象是可变的键控集合(即一组数据和功能的集合).它将很多值聚合在一起,可通过名字访问这些值.对象也可看做属性的容器,每个属性都是一个名/值对.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除undefined值之外的任何值.对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerate)他的属性.  一.属性类型 ECMA-262第5版在定义只有内部采用的特性时,描述了属性的各

浅谈js中的数据类型,使用typeof获取js数据类型

JS中的数据类型 1):Undefined——值未定义 注:Undefined类型只有一个值,即特色的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined 2):boolean——布尔值 注:true和false是区分大小写的.也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符 3):string——字符串 注:用双引号和单引号表示的字符完全相同 4):number——数值 注:表示整数和浮点数值 5):Nul