概要:
js的数据类型分为两类:原始类型(primitice type)和对象类型
js的 原始类型包括数字、字符串和布尔值
js中有两个特殊的原始值,null和undefind,空和未定义,他们不是数字、
字符串和布尔值,他们通常分别代表了各自特殊类型的唯的成员
js中除了数字、字符串、布尔值、nullundefined之外就是对象了,对象是属性的集合,每个属性都由 键/值 对普通的js对象是 命名
值的无序集合,js同样定义了一种特殊对象---数组 array,js还定义了另外iayizhong特殊对象--函数。js解释器有自己的内存管理机
制,可以自动对内存进行垃圾回收
------------------------------------------------分割线---------------------------------------------------
js不区分整数值和浮点数值,js中所有数字均用浮点数值表示。
3.1.1 整型直接量
js中庸一个数字序列标识一个十进制整数
如 0
3
100000
3.1.2 浮点型直接量
浮点型直接量可以含有小数点,采用的是传统的实数写法,一个实数由整数和小数点,小数部分组成。如 3.14
3.1.3 js中的算术运算
包括加减乘除,求余,取模等,除了支持基本的运算符外,js还支持更复杂的
算术运算,这些复杂的运算通过作为Math对象的属性定义的函数和变量来实现
例:Math.max(x,y,z)返回最大值
Infinity(无穷大)、-Infinity(负无穷大)
0/0 用NaN标识
3.1.4二进制浮点数和四舍五入错误
实现有无数个,但js通过浮点数的形式只能表示期中有限的个数,也就是说,js使用实数的时候
常常只是真实值的一个近似标识
3.1.5 日期和时间
js语言核心包括Date构造函数,用来创建表示日期和时间的对象,这些日期的方法为日期计算提供了简单的API
日期对象不像数字那样是基本数据类型
例如 var then=new Date(2011,0,1);//2011年1月1日
new Date().toLocaleDateString()); //显示日期 2014/10/25
3.2 文本
字符串是由一组由16位数值组成的不可变的有序序列,每个字符通常来自Unicode字符,
js通过字符串类型来表示文本。字符串的长度是其所含16位值的个数
js字符串和其数组的索引从0开始,第一个字符的位置
是0,第二个字符的位置是1,以此类推,空字符串 empty string长度为0,js种并没有表示单个字符的字符型,要表示一个16位值,只需将其赋值给字符串变量即可,这个字符长度为1
3.2.1字符串直接量
由单引号或双引号包括起来的字符序列,由单引号定界的字符串中科院包含双引号,由双引号定界的字符串也可以包含单引号
"" //空字符串,它包含0个字符
'test'
3.2.2 转义字符
js字符串中,\反斜线 有着特殊的用途,反斜线号加一个字符,就不再表示他们的字面含义了,比如 \N
\n 标识换行
Javascript转义字符
\o null字符
\b 退格符
\t 水平制表符
\n换行
\v垂直制表符
\f换页符
\r回车符
\"" 双引号
\'撇好或者单引号
\\反斜线
等
3.2.3字符串的使用
js中+号表示字符串的连接
记住,在js中字符串是固定不变的,类似replace()和toUpperCase()的方法都返回新的字符串,原字符串本事并没有发生改变
ECMAScript 5中,字符串可以当做只读数组,除了使用charA
charAT()方法,也可以使用方括号来访问字符串中的单个字符
S="Hello,World";
s[0] // 标识 h
3.2.4 模式匹配
js定义了RegExp()构造函数,用来创建表示文本匹配的对象,这些模式被称为正则表达式,
js采用perl中的正则表达式语法,String和RegExp对象均定义了利用正则表达式进行模式匹配和查找和替换的函数
在两条斜线之间的文本构成了一个正则表达式直接量,第二条斜线之后也可以跟紧一个或多个字母,用来修饰匹配模式的含义,例如
/^HTML/ 匹配以HTML开头的字符串
例
var test="testing:1,2,3"; //文本
var pattern=/\d+/g //匹配所有包含一个或者对各数字的实例
pattern.test(test);
3.3 布尔值
布尔值指代真或假,开或关,是或否,这个类型只有两个值,保留字:true和false
3.4 null和undefined
null是js的关键字,它表示一个特殊值,常用来描述空值,对null之星typeof运算,返回object!
null是一个特殊的对象值,含义是非对象,但实际上,通常认为null是它自有类型的唯一的一个成员,它
可以表示数字,字符串和对象。
undefined则说明这个属性或元素不存在,如果函数没有返回任何值,则返回undefined,引用没有提供实参的函数形式参数的值只会得到undefined
3.5 全局对象
全局对象的属性是全局定义的符号,js直接使用,js解释器启动时,将创建一个全新的全局对象,并给他一组定义的初始属性
全局属性
全局函数
构造函数
全局对象
在代码的最顶级,不在任何函数内的js代码,可以使用就是关键字 this 来引用全局对象
vat global=this; //定义一个引用全局对象的全局变量
3.6 包装对象
js对象是一种复合值,他是属性或已命名值的集合,通过.符号来引用属性值,当属性值是一个函数的时候,称其为方法,通过O.m() 来调用
3.7 不可变的原始值和可变的对象引用
js中的原始值(undefined,null,布尔值,数字和字符串)与对象(包括数组和函数) 有着根本的区别。原始值是不可更改的,任何方法都无法更改一个原始值。