JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...等等。
此外,JavaScript 允许自定义对象。
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有 "属性" 和 "方法" 的特殊数据类型。
布尔型可以是一个对象。
数字型可以是一个对象。
字符串也可以是一个对象。
日期是一个对象。
数学和正则表达式也是对象。
数组是一个对象。
甚至函数也可以是对象。
对象只是一种特殊的数据。对象拥有 "属性" 和 "方法"。
访问对象的属性:
属性是与对象相关的值。
http://www.iis7.com/b/wzjk/
访问对象属性的语法是:objectName(对象名称).(属性名称)propertyName
这个例子使用了 String 对象的 length 属性来获得字符串的长度:
[var message="Hello World!";
var x=message.length;
在以上代码执行后,x 的值将是:
12]
创建 JavaScript 对象:
通过 JavaScript,您能够定义并创建自己的对象。
创建新对象有两种不同的方法:
定义并创建对象的实例。
使用函数来定义对象,然后创建新的对象实例。
使用对象构造器。
在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。
把属性添加到 JavaScript 对象:
您可以通过为对象赋值,向已有对象添加新属性。
把方法添加到 JavaScript 对象:
方法只不过是附加在对象上的函数。
::::::::::::::::::::::::::::::::::::
JavaScript 类:
JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype(原型)的,而不是基于类的。
JavaScript for...in 循环:
JavaScript for...in 语句循环遍历对象的属性。
语法:
for (variable(变量) in object)
{
执行的代码……
}
注意: for...in 循环中的代码块将针对每个属性执行一次。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript (Number) 对象
JavaScript 只有一种数字类型,可以使用也可以不使用小数点来书写数字。
JavaScript 数字可以使用也可以不使用小数点来书写。
极大或极小的数字可通过科学(指数 "e")计数法来写。
所有 JavaScript 数字均为 64 位
JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
数字不分为整数类型和浮点型类型,所有的数字都是由浮点型类型。采用IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324。
精度:
整数(不使用小数点或指数计数法)最多为 15 位。
小数的最大位数是 17,但是浮点运算并不总是 100% 准确。
八进制和十六进制:
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。绝不要在数字前面写零,除非您需要进行八进制转换。
默认情况下,JavaScript 数字为十进制显示,但是你可以使用 toString() 方法 输出16进制、8进制、2进制。
无穷大(Infinity):
当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。
NaN - 非数字值:
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。除以0是无穷大,无穷大是一个数字,所以返回false。
数字可以是数字或者对象:
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字对象初始化数据, var y = new Number(123)。
数字属性:
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
NaN
prototype
constructor
数字方法:
toExponential()
toFixed()
toPrecision()
toString()
valueOf()
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 字符串(String) 对象
String 对象用于处理已有的字符块。
一个字符串用于存储一系列字符就像 "John Doe"。
一个字符串可以使用单引号或双引号。
你使用位置(索引)可以访问字符串中任何的字符,字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。
你可以在字符串中使用转义字符(\)使用引号。
字符串(String)使用长度属性length来计算字符串的长度。
字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置,如果没找到对应的字符函数返回-1。
lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。
内容匹配:
match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
替换内容:
replace() 方法在字符串中用某些字符替换另一些字符。
字符串大小写转换:
字符串大小写转换使用函数 (大写)toUpperCase() 还有 (小写)toLowerCase()。
字符串转为数组:
字符串使用split()函数转为数组。
特殊字符:
Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号,在JavaScript中,字符串的开始和停止使用单引号或双引号。
反斜线转义特殊字符:
\'单引号
\"双引号
\\斜杆
\n换行
\r回车
\ttab
\b空格
\f换页
字符串属性和方法:
属性:
length
prototype
constructor
方法:
charAt()
charCodeAt()
concat()
fromCharCode()
indexOf()
lastIndexOf()
match()
replace()
search()
slice()
split()
substr()
substring()
toLowerCase()
toUpperCase()
valueOf()
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript Date(日期) 对象
日期对象用于处理日期和时间。
Date(),使用Date()获取当日的日期。
getFullYear(),使用 getFullYear() 获取年份。
getTime(),getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
setFullYear(),使用 setFullYear() 设置具体的日期。记住 JavaScript 月数是从0至11。10是11月。
toUTCString(),使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。
getDay(),使用 getDay() 和数组来显示星期,而不仅仅是数字。
Display a clock,在网页上显示一个钟表。
getHours(),获取当前小时数。
getMinutes(),获取当前分数。
getSeconds(),获取当前秒数。
Date 对象用于处理日期和时间, 可以通过 new 关键词来定义 Date 对象。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript Array(数组) 对象
数组对象的作用是:使用单独的变量名来存储一系列的值。
什么是数组?:
数组对象是使用单独的变量名来存储一系列的值。
如果你有一组数据(例如:车名字),存在单独变量如下所示:
var car1="Saab";
var car2="Volvo";
var car3="BMW";
然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!
最好的方法就是用数组。
数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。
创建一个数组,有三种方法:
下面的代码定义了一个名为 myCars的数组对象:
1: 常规方式:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2: 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
3: 字面:
var myCars=["Saab","Volvo","BMW"];
访问数组:
通过指定数组名以及索引号码,你可以访问某个特定的元素。
[0] 是数组的第一个元素。[1] 是数组的第二个元素,以此类推。
在一个数组中你可以有不同的对象:
所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
因此,你可以在数组中有不同的变量类型。
你可以在一个数组中包含对象元素、函数、数组:
myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;
数组方法和属性:
使用数组对象预定义属性和方法:
var x=myCars.length // myCars 中元素的数量。
var y=myCars.indexOf("Volvo") // "Volvo" 值的索引值。
原型是JavaScript全局构造函数。它可以构建新Javascript对象的属性和方法。
concat(),合并数组。
join(),数组的元素组成字符串输出。
shift(),删除数组的第一个元素 。
pop(),删除数组的最后一个元素 。
unshift(),在数组的开头添加新元素 。
push(),数组的末尾添加新的元素。
reverse(),将数组中的元素的顺序反转排序 。
slice(),从一个数组中选择元素 。
sort(),数组排序(按字母顺序升序)。
toString(),数组转换到字符串。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript Boolean(布尔) 对象
Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false),检查布尔对象是 true 还是 false。
Boolean 对象代表两个值:"true" 或者 "false"。
下面的代码定义了一个名为 myBoolean 的布尔对象:
var myBoolean=new Boolean();
如果布尔对象无初始值或者其值为:
0
-0
null
""
false
undefined
NaN
那么对象的值为 false。否则,其值为 true(即使当变量值为字符串 "false" 时)。
:
JavaScript Math(算数) 对象
Math(算数)对象的作用是:执行常见的算数任务。
Math.round(),四舍五入。
random(),使用 random() 来返回 0 到 1 之间的随机数。
max(),使用 max() 来返回两个给定的数中的较大的数,(在 ECMASCript v3 之前,该方法只有两个参数)。
min(),使用 min() 来返回两个给定的数中的较小的数, (在 ECMASCript v3 之前,该方法只有两个参数)。
Math 对象:
Math(算数)对象的作用是:执行普通的算数任务。
Math 对象提供多种算数值类型和函数。注意:无需在使用这个对象之前对它进行定义。
算数值:
JavaScript 提供 8 种可被 Math 对象访问的算数值,常量使用方法:
Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E
算数方法:
除了可被 Math 对象访问的算数值以外,还有几个函数(方法)可以使用。
下面的例子使用了 Math 对象的 round 方法对一个数进行四舍五入。
document.write(Math.round(4.7));
上面的代码输出为:5
下面的例子使用了 Math 对象的 random() 方法来返回一个介于 0 和 1 之间的随机数:
document.write(Math.random());
上面的代码输出为:随机的0.6287247786957237
下面的例子使用了 Math 对象的 floor() 方法和 random() 来返回一个介于 0 和 11 之间的随机数:
document.write(Math.floor(Math.random()*11));
上面的代码输出为:随机的5
:
JavaScript RegExp(正则表达式) 对象,RegExp:是正则表达式(regular expression)的简写。
什么是 RegExp?:
正则表达式描述了字符的模式对象。
当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。
简单的模式可以是一个单独的字符。
更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。
您可以规定字符串中的检索位置,以及要检索的字符类型,等等。
语法:
var patt=new RegExp(pattern,modifiers);
或更简单的方法
var patt=/pattern/modifiers;
模式描述了一个表达式模型。
修饰符(modifiers)描述了检索是否是全局,区分大小写等。
注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。
RegExp 修饰符:
修饰符用于执行不区分大小写和全文的搜索。
i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。
gi,全文查找和不区分大小写搜索。
test(),test()方法搜索字符串指定的值,根据结果并返回真或假。
exec(),exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。