1. ECAMScript的数据类型
基本数据类型:Undefined、Null、Boolean、Number、String
复杂数据类型:Object
0) typeof 操作符
typeof 操作符(不是函数)的操作数可以是变量,也可以是数值字面量。 typeof(message) 或者 typeof message。可能的结果如下:
undefined-----值未定义
boolean-------值是布尔值
string----------值是字符串
number-------值是数值
object---------值是对象或null
function-------值是函数
1)Undefined 类型
该类型只有一个值:undefined----指在使用var声明变量但未对其初始化时该变量的值。
2)Null 类型
该类型只有一个值:null----指一个空对象指针。
var o1 = null;
typeof o1 ----- object
注意:如果一个变量将来用来保存对象,那么最好将该变量初始化为null
3)Boolean 类型
该类型的值是:true false
ECMAScript中所有类型的值都有与这两个Boolean值等价的值。可以用Boolean()转型函数转换
流控制语句(如if语句)会自动执行相应的Boolean()转换
4)Number 类型
浮点数:保存浮点数的内存空间是保存整数的两倍,所以ECMAScript会将(1.或者1.0)这样的浮点数值转换成整数值。
表示方式:3.12e5----312000 3.12e-2----0.0312
数值范围:最小值---Number.MIN_VALUE 最大值---Number.MAX_VALUE 如果超过了Javascript的范围,这个超过的数值会自动转换成特殊的Infinity或者-Infinity。要判断一个数是不是位于最小数和最大数之间,用 isFinite(参数) 函数。
NaN:非数值,用于表示本来要返回数值的操作数未返回数值的情况。isNaN()函数用来判断参数是否不是数值----他会将参数转换成数值如 "10" 会变成10 true会变成1 而 "blue" 不能被转换成数值,isNaN()会返回true。
注意:NaN != NaN
数制转换:以下,三个函数可以将非数值转换成数值
① Number() 适用于任何数据类型,转换规则:
Boolean:ture-1 false-0
null--0 undefined--NaN
字符串:若只包含数字,就将其转换成十进制数 011--11
若包含有效的浮点格式,会将其转化成浮点数值
若包含有限的十六进制格式,如0xf,会将其转换成相同大小的十进制整数值
若字符串为空(""),会将其转换成0
若字符串包含除上述格式之外的字符,就转换成NaN
② parseInt() :从字符串中第一个不是空字符的字符开始,若空字符串或者第一个非空字符不是数字字符或者负号,就返回NaN,否则会解析第二个字符。一直解析到非数字字符为止。 22.5---22,因为.不是有效数字字符。可以指定参数来说明解析的是几进制数。 parseInt("AF",16)----175
③ parseFloat():同上,但是他只解析10进制,因此16进制永远是被转换成0----0xf---0
5)String 类型
字符串的特点是一旦创建,他们的值就不能改变。要改变的做法是:销毁原来的字符串,再用另外一个包含新值的字符串填充该变量。
转换为字符串的方法:
① toString() 方法 ------ 数值,布尔值,对象,字符串值都可以调用该方法。null和undefined不可以。该方法可以指定一个参数,该参数可以指明转换成几进制格式的字符串值。
String() 函数可以将任何类型的值转换为字符串,若调用该函数的值有toString()方法,则调用toString()方法,返回相应的结果。如果值为null,则返回"null" 。如果值为undefined,则返回"undefined" 。
② 将某个值用 + 与一个字符串相连。
6)Object 类型
在ECMAScript中,对象就是一组数据和功能的集合。创建Object类型的实例并为其添加属性或方法,就可以创建自定义对象。如 var o = new Object();