1、JavaScript的数据类型分为两类:原始类型和对象类型;
原始类型包括:数字,字符串,布尔值,null和undefined; (都是不可变类型,值不可以修改)
对象类型:普通对象和函数;
函数可使用new新建对象,即构造函数;每个构造函数定义了一类对象--由构造函数初始化的对象组成的集合;
类可以看做是对象类型的子类型,javascript语言定义的类主要有:数组Array,函数Function,日期Date
正则RegExp: var pattern=/s$/ 等价于 var pattern = new RegExp("s$");用于匹配任何以‘s’结束的字符串;
错误Error:定义了表示程序中运行是错误和语法错误的对象; 在try--catch中使用。
--------------------------------------------
关于常用类型判定例子:
定义变量:var n;
赋值-----
获取类型: typeof n
// 'undefined' --- 这个值未定义;
// 'boolean' --- 这个值是布尔值;
// 'string' --- 这个值是字符串;
// 'number' --- 这个值是数值;
// 'object' --- 这个值是对象或null;
// 'function' --- 这个值是函数。
null和函数也是对象,但返回值不同;
---------------------------------------------
2、数值类型:
1)、所有数字均用浮点数值表示;
2)、JavaScript预定义了全局变量NaN非数字值与Infinity正无穷大;
仅当x为NaN时,x!=x为true,其他都为false;
仅当参数是NaN或非数字值时,isNaN()返回值为true;
仅当参数不是NaN、Infinity或-Infinity的时候,isFinite()返回true;
3)、javascript浮点数表示法是一种二进制表示法,不能精确表示类似0.1这样的数字;
var x = 0.3- 0.2; var y = 0.2- 0.1;alert(x == y); //false
javascript真实运行环境中:x=0.099 999 999 999 999 98 y = 0.1;
3、字符串,正则的使用例子:
var text = "test:1,2,3";
var pattern = /\d+/g //匹配所有包含一个或多个数字的实例;
pattern.test(text); //true 匹配成功;
text.search(pattern); //6 首次匹配成功位置;
text.match(pattern); //[1,2,3]所有匹配成功组成的数组;
text.replace(pattern,'#'); //[test:#,#,#] 替换
4、布尔值:
判断以下值时:undefined,null,0,-0,NaN,"" 都是false;
var y; var x= null; alert(x == y);// true y是undefined ;
5、类型转换:
1.number-to-string:
var n = 123456.789;
n.toFixed(2) //123456.78 指定小数点后的位数;
n.toExponential(2) //1.23e+5 指定指数计数法,小数点钱固定一位;
n.toPrecision(10) //123456.7890 指定有效数字位数
n.toPrecision(2) //1.23e+5 如小于整数位数,则转为指数
2.string-to-number:
parseInt() //解析整数;
parseFloat() //解析整数和浮点数;
6、函数:函数变量声明提前
var n = 'global';
function(){
console.log(n); //undefined
var n = 'scope';
console.log(n); //scope
}
等价于:
var n = 'global';
function(){
var n;
console.log(n); //undefined
n = 'scope';
console.log(n); //scope
}