JavaScript的数据类型和对象
数据类型
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."
上一篇: AIX显示版本的最高全包含版本原则