欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript的数据类型和对象

程序员文章站 2024-01-31 08:38:49
...

数据类型

ECMAScript有5种基本数据类型:Undefined、Null、Boolean、Number、String;
      1种复杂数据类型:Object。

typeof操作符

typeof:用于检测变量的数据类型的操作符,操作数可以是变量,也可以是数值字面量。

返回结果 描述
underfined 值未定义
boolean 值是布尔值
string 值是字符串
number 值是数值
object 值是对象或null
function 值是函数
var test = 'example';
alert(typeof test);   //string
alert(typeof(test));  //string
alert(typeof 100);    //number
alert(typeof true);   //boolean

Undefined类型

Undefined类型:只有一个undefined的值,在var声明变量却没有进行初始化的时         候,该变量的值默认为undefined。

var test;
alert(test);   //undefined

Null类型

Null类型:也只有一个null的值,该值表示一个空对象指针。

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

如果定义的变量是为以后保存对象而准备的,最好直接将该变量初始化为null,因为这样只需要检查null值,就能知道相应的变量是否已经保存了一个对象的引用。

var test1;
var test2 = null;
alert(typeof test1);   //undefined
alert(typeof test2);   //object
if(test2 == null)
{
	alert("该变量没有保存了任何对象的引用");
}
else
{
	alert("该变量保存了一个对象的引用");
}

注:无论什么情况下都没有必要把一个变量的值显示地设置为undefined,但是有必要将一个变量显示地设置为null,因为这样可以区分用来保存对象的变量是否已经保存了对象。

Boolean类型

Boolean类型:有2个字面值,分别是true和false。
Boolean():转型函数,将一个值转化为其对应的Boolean值,任何数据类型的值都      能通过该函数进行转换。

var test1 = "hello world";
var test2 = Boolean(test1);
alert(test2);   //true
数据类型 转换成true值 转换成false值
Boolean true false
String 非空字符串 空字符串
Number 非0数值 0、NaN
Object 对象 null
Undefined - undefined

Number类型

Number类型:用来表示整数和浮点数数值。

var test1 = 1.1;
var test2 = 0.1;
var test3 = .1;
var test4 = 1.
var test5 = 1.0
var test6 = 3.14e10;
alert(test1);   //1.1
alert(test2);   //0.1
alert(test3);   //0.1
alert(test4);   //1(解析为整数)
alert(test5);   //1(解析为整数)
alert(test6);   //31400000000

NaN:一个特殊的值,为非数值,用于表示一个本来要返回数值的操作数却未    返回数值的情况。
特点:1.任何数值除以非数值都会返回NaN;
   2.NaN与任何值都不相等,包括NaN本身。
isNaN():该函数可以判断参数是否为NaN,参数可以为任何数据类型。

alert(isNaN(NaN));      //true;
alert(isNaN(10));       //false;
alert(isNaN("10"));     //false;
alert(isNaN("blue"));   //true;
alert(isNaN(true));     //false;

Number():该函数可以把非数值转换为数值

alert(Number("hello world"));   //NaN
alert(Number(""));              //0
alert(Number("000011"));        //11(前导0被忽略)
alert(Number(true));            //1

parseInt():该函数可以把非数值转换为数值,第二个参数,转换时用的进制数。

alert(parseInt("123hello world", 10));   //123
alert(parseInt("", 10));                 //NaN
alert(parseInt("12.3", 10));             //12
alert(parseInt("10", 2));                //2
alert(parseInt("010", 8));               //8
alert(parseInt("10", 10));               //10
alert(parseInt("A", 16));                //10

注:Number()函数在转换空字符串会返回0,而parseInt()函数则返回NaN。

parseFloat():该函数可以把非数值转换为数值,该函数从第一个字符解析到字符       串尾部,遇到一个无效的浮点数字字符即停止,并且该函数只解析       十进制值。

alert(parseFloat("123hello world"));   //123
alert(parseFloat(""));                 //NaN
alert(parseFloat("1.34"));             //1.34
alert(parseFloat("1.34.15"));          //1.34
alert(parseFloat("0501.34"));          //501.34(前导0忽略)
alert(parseFloat("10"));               //10
alert(parseFloat("010"));              //10(前导0忽略)
alert(parseFloat("A"));                //NaN

String类型

String类型:由0个或者多个 16位的Unicode字符组成的字符序列,也叫字符串。

var test1 = "hello world";
var test2 = 'hi world';

length:访问该属性能获取任何字符串的长度。

var test = "hello world";
alert(test.length);   //11

字符字面量(转义序列):通过加“\”进行转义。

字面量 描述
\n 换行
\t 制表
\b 退格
\r 回车
\f 进纸
\\ 斜杠
\" 双引号
\‘ 单引号
\xnn 十六进制(\x41表示‘A’,十六进制表示 0x41 等同于十进制 65 等同于 字符 A)

字符串的拼接:ECMAScript中的字符串是不可改变的,如果要改变,只能把原来的字符串进行销毁,再用新的字符串填充该变量。

var test = "I love ";
var test = test + "JavaScript";
alert(test);   //"I love JavaScript"

toString():该函数可以把转换为字符串,返回相应值的字符串形式。

var age = 21;
var ageAsString = age.toString();
alert(ageAsString );   //"21"
alert(typeof ageAsString );   //string

该方法还可以传递一个参数,基数(即进制数)。

var age = 21;
alert(age.toString());   //"21"
alert(age.toString(2));   //"10101"
alert(age.toString(8));   //"25"
alert(age.toString(10));   //"21"
alert(age.toString(16));   //"15"

注:null和undefined值没有该方法。

String():该函数可以把任何类型的值转换为字符串(包括null类型和undefined      类型),返回相应值的字符串形式。

var test1 = 21;
var test2 = null;
var test3 = true;
var test4;
alert(String(test1));   //"21"
alert(typeof String(test1));   //string
alert(String(test2));   //"null"
alert(typeof String(test2));   //string
alert(String(test3));   //"true"
alert(typeof String(test3));   //string
alert(String(test4));   //"undefined"
alert(typeof String(test4));   //string

Object类型

ECMAScript的对象:是一组数据和功能的集合,有属性,也有方法。对象通过执          行new操作符后跟要创建的对象类型的名称来创建。
Object:本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法     常用于保证某个值一定是对象。

var test = new Object();   //创建Object类型的对象并实例化

JavaScript 对象

JavaScript对象:JavaScript 变量是数据值的容器,而JavaScript 对象是被命名值        的容器。对象有属性,也有方法,不同的对象可能属性不同,方        法也不同。
定义对象:

var boy = {
			name:"yang", 
			age:"21", 
			profession:"web",
			student: function() {
				alert("I am a student.");
			} 
		  };

对象的属性:

属性
name yang
age 21
profession web

访问对象的属性:

alert(boy.name);         //"yang"
alert(boy.age);          //"21"
alert(boy.profession);   //"web"
alert(typeof boy.name);         //string
alert(typeof boy.age);          //string
alert(typeof boy.profession);   //string

对象的方法:方法是在对象上执行的动作,以函数定义被存储在属性中。
访问对象的方法:

boy.student();   //"I am student."