1.JavaScript简介
JavaScript是一种基于对象和事件驱动(能随时响应键盘事件、鼠标事件及浏览器窗口事件等,并执行指定的操作。),并具有安全性的脚本语言(JavaScript是客户端脚本,通过浏览器解释执行。它不允许访问本地的硬盘,不能将数据保存到服务器,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。)。
它与HTML,CSS结合起来,用于增强功能,并提高与最终用于之间的交互性能。
客户端的JavaScript必须要有解释器的支持
JavaScript代码是解释型的,无需专门的编译器来编译,直接嵌入到HTML文档,由浏览器逐行解释和执行,减轻了服务器的压力。
目前,所有的浏览器都内置JavaScript的解释器
2.JavaScript的组成部分
JavaScript由三部分组成:
ECMAScript:定义了基本的语法和一些对象。核心
每种Web浏览器都有对ECMAScript标准的实现
DOM(Document Object Model):文档对象模型,它是HTML和XML文档的应用程序编程接口。
Web浏览器中的DOM把整个页面规划成由节点层级构成的文档。用DOM API可以轻松地删除、添加和替换节点。
DOM不是JavaScript专有的。许多语言都实现了它。
BOM(Browser Object Model):浏览器对象模型,描述了与浏览器窗口进行访问和操作的方法和接口。
BOM暂时没有相关的标准,每种浏览器对BOM的实现有些差别。
3.JavaScript的三种放置方式
1.放置在
2.将JS代码放置在一个单独的文件中,以.js为扩展名。要引用的页面用如下方式引入:
3.将脚本代码作为HTML标签的属性值:
JavaScript
用作URL的JS代码前要增加javascript;作为事件属性值的JS代码则不要加。
5.变量的声明
JS采用弱类型的变量形式
即声明一个变量时不必确定类型,而是在使用或赋值时自动确定其数据类型。
为使代码更易于阅读,变量建议使用匈牙利命名法:
如:数组 aValues、布尔型 bFound、浮点数 fValue、
函数 fnMethod、 整数 iValue、对象 oType、
字符串 sValue、正则表达式 rePattern、其它类型 vValue
JS用关键字var声明变量:
在JS中也可以不事先声明变量而直接使用:
6.JavaScript基本数据类型
Number类型
整数:十进制、八进制、十六进制
浮点数:带小数点的数字,可用科学记数法表示 var fNum = 3.1e7
Boolean型
true和false两个值,0表示false,非0表示true
String型
用单引号(')或双引号(")引起来的若干个字符。
转义字符
\r 回车、\n 换行、\t 制表符、\' 单引号、\" 双引号、\\ 表示一个斜杠
null:表示还不存在的对象。可看成对象的占位符。
undefined:表示声明了变量,但尚未赋值。
如:var oTemp; alert(oTemp);
它是从null派生来。 alert(null == undefined); //true
7.typeof
typeof运算符
检查变量或值的类型: alert(typeof 95.5);
8.JavaScript类型转换
转换成字符串
ECMAScript的基本数据类型都有toString()方法,可以把它们的值直接转换成字符串
如:var fNum1 = 10.0; alert(fNum1.toString());
转换成数字
ECMAScript提供了两个方法:parseInt()和parseFloat(),可以把String类型变量转换成数字。
如:var iNum1 = parseInt("123ab");
var fNum1 = parseInt("123a");
强制类型转换
ECMAScript中有可用的3种强制类型转换
Boolean(value) 把给定的值转换成Boolean型
Number(value) 把给定的值转换成数字(可以是整数和浮点数)
String(value) 把给定的值转换成字符串
var iNum = Number(100);
10.JavaScript中函数的定义语法
函数的基本语法:
function 函数名(参数1,参数2,..参数n) {
程序代码;
[return 值;]
}
多个参数由逗号分隔,注意不能用var声明参数
不需要声明返回值类型
JS中的函数不能重载,后定义的函数会覆盖前面定义的同名函数:
JS不会验证传递给函数的参数个数是否等于函数定义的参数个数。自定义的函数都可以接收任意个数的参数。
11.arguments对象的使用
在函数内部的程序代码中,可以使用一个名为arguments的对象,
这是一个数组对象,其中包含了调用此函数传递的所有参数。
12.全局变量:在所有函数之外定义的变量,使用范围是这个变量定义之后的所有语句。
局部变量:定义在函数代码之内的变量,只可以在这个函数体内可以使用。
13.JavaScript对象的类型
可以创建并使用的对象有三种:
本地对象:独立于宿主环境的ECMAScript实现提供的类
Object、Number、Boolean、String、Array、Date、RegExp、Function
内置对象:特殊的本地对象,在ECMAScript程序开始执行时已经被实例化的对象。
Global对象、Math对象
宿主对象:所有非本地对象。由ECMAScript实现的宿主环境提供的对象。
所有的BOM和DOM对象都是宿主对象。
14.Object类
所有类的根类,ECMAScript是的所有类都继承自这个类。
属性
prototype 对该对象的对象原型的引用
方法
toString() 对象的原始字符串表示
15.String类
它是基本数据类型“字符串”的对象表示法,一般利用String类提供的函数来处理字符串。
属性:
length:得到字符串的字符个数
常用方法:
charAt(dx):返回指定位置处的字符
indexOf(chr):返回指定子字符串的位置,从左到右。找不到返回-1。
lastIndexOf(chr):返回指定子字符串的位置,从右到左。找不到返回-1。
substring(start, end):返回从start位置到end位置(不包括)的子串
toLowerCase():将字符串中的字符全部转化成小写
toUpperCase():将字符串中的字符全部转化成大写
split():返回按照指定的分隔符(可以是正则表达式)拆分后的字符串数组
replace(regexp, newSubStr):使用正则表达式搜索,搜索到的内容用指定的字符串替换。
match(regexp) :使用正则表达式进行匹配搜索,返回搜索结果的数组。
16.Date类
Date类表示日期和时间
它存储的是距离1970年1月1日0时0分0秒的毫秒数
主要方法:
构造方法:Date()
静态方法:parse(str) 把一个字符串解析成日期值。
例: alert(Date.parse("11/08/2008"));
getFullYear()、setFullYear():年
getMonth()、setMonth(): 月份值0-11
getDate()、setDate():该月中某天
getDay()、setDay():星期几
getHours()、setHours():小时数。
getMinutes()、setMinutes():分钟数
getSeconds()、setSeconds():秒数
getTime()、距1970.01.01.00:00:00的毫秒值
toLocaleString() 以本地环境显示Date的日期和时间
toLocaleDateString()
toLocaleTimeString()
17.Global对象
Global对象实际上根本不存在,它提供的方法都是直接使用的:
encodeURI(string) 返回对一个URI字符串编码后的结果。(用专门的UTF-8编码替换所有的非有效字符)。不对URI中的ASCII字母和数字以及;/?:@&=+$,# - _ . ! ~ * ' ( )这些符号编码。
decodeURI(string) 将一个已编码的URI字符串解码成最初的字符串并返回。
encodeURIComponent(str) 返回对URI字符串编码后的结果。不会被此方法编码的字符:! * ( )
decodeURIComponent(str) 解码
parseInt(string[, radix]) 将一个字符串转按指定的进制换成一个整数。
parseFloat(string) 将一个字符串转换成对应的小数。
isNaN(testValue) 检测parseInt和parseFloat方法的返回值是否为NaN(not a number)。
eval_r(str) 计算JavaScript字符串,并把它作为脚本代码来执行。
18.with语句
with语句:
with(对象名称){ 执行语句块 }
如果一段连接的程序代码中,多次使用到了某个对象的许多属性和方法。只要在with括号中写出对象变量的名称,然后就可以在随后的大括号中直接引用对象实例的的属性名和方法名,不必每个属性和方法名前都加上对象实例名。
19.for in语句
for(变量 in 对象){ 执行语句块 }
用于对某个对象的所有属性进行循环操作,它将一个对象的所有属性名逐一赋值给一个变量。
20.数组
数组用于表示一组数据的集合。JS提供的本地对象Array类就是用来创建数组的。
常用构造函数:
Array() 创建一个元素个数为0的数组对象
Array(4) 创建具有指定大小的数组对象
Array(3.5, “abc”, 3) 创建并初始化数组对象
数组中的元素可以通过下标来访问,下标(索引)从0
常用属性:
length 获取数组的元素个数
常用方法:
toString() 把数组的每项用逗号连接成字符串返回
join("连接符") 把数组的每项用指定的连接符连成字符串返回
reverse() 反转元素,并且返回数组
sort() 对数组按字符编码的顺序进行排序,并且返回数组
pop() 移除最后一个元素并返回该元素值
shift () 移除第一个元素并返回该元素值,后面的元素前移
push() 将一个或多个新元素添加到数组结尾,并返回数组新长度
unshift() 将一个或多个新元素添加到数组开头,并返回数组新长度。
21.JSON认识
JavaScript Object Notation:是一种轻量级的数据交换格式。