1.1 为何学习JavaScriptjavascript
JavaScript在网页制做中占有很是重要的地位。前端
一、 客户端表单验证java
网站中常常见到的会员登陆、注册,咱们填写登陆、注册信息时,若是某项信息格式输入错误,或没有输入内容,表单页面将及时给出错误提示。这些错误在提交到服务器前,由客户端提早进行验证,称为客户端表单验证。编程
二、 页面动态效果数组
在JavaScript中,能够编写响应鼠标单击等事件的代码,建立动态页面特效,从而高效地控制页面的内容。浏览器
虽然JavaScript能够实现许多动态效果,但要实现一个特效代码量大,而使用jQuery(JavaScript程序库)能够用极少的代码实现一样的效果。安全
三、 jQuery基础服务器
JavaScript是学习jQuery的基础。网络
1.2 什么是JavaScriptapp
JavaScript是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具备安全性能的脚本语言。它与HTML(超文本标记语言)一块儿,在一个Web页面中连接多个对象,与Web客户实现交互。不管在客户端仍是在服务器端,JavaScript应用程序都要下载到浏览器的客户端执行,从而减轻了服务器端的负担。
特色:
→ JavaScript主要用来在HTML页面中添加交互行为。
→ JavaScript是一种脚本语言,语法和Java相似。
→ JavaScript通常用来编写客户端的脚本。
→ JavaScript是一种解释性语言,边执行边解释。
ECMAScript是一种脚本语言的标准,JavaScript语言就是遵循ECMAScript标准的一种实现。
1.2.1 JavaScript的组成
一个完整的JavaScript由三个部分组成:ECMAScript、BOM、COM。
一、 ECMAScript标准
ECMAScript是一种开放的、被国际上广为接受的、标准的脚本语言规范。它不与任何具体的浏览器绑定。ECMAScript标准主要描述了如下内容:
→ 语法。
→ 变量和数据类型。
→ 运算符。
→ 逻辑控制语句。
→ 关键字、保留字。
→ 对象。
ECMAScript是一个描述,规定了脚本语言的全部属性、方法和对象的标准,所以在使用Web客户端脚本语言编码时必定要遵循ECMAScript标准。
二、 浏览器对象模型
浏览器对象模型(Browser Object Model,BOM),提供了独立于内容与浏览器窗口进行交互的对象,使用浏览器对象模型能够实现与HTML的交互,如网上常见的弹出窗口、前进后退等功能都是浏览器对象控制的。
三、 文档对象模型
文档对象模型(Document Object Model,DOM),是HTML文档对象模型(HTML DOM)定义的一套标准方法,用来访问和操纵HTML文档,如网上商城常见的随鼠标移动显示大的图片、弹出小提示等都是文档对象的功劳。
1.2.2 JavaScript的基本结构
JavaScript代码是用<script>标签嵌入HTML文档中。浏览器遇到<script>标签时,将逐行读取内容,直到遇到</script>结束标签为止。而后,浏览器将检查JavaScript语句的语法,若是有任何错误,则会在警告框中显示;若是没有错误,则浏览器将编译并执行语句。
一、 JavaScript的基本结构
JavaScript的基本结构以下:
<script type=”text/javascript”>
JavaScript语句;
</script>
其中type是<script>标签的属性,用于指定文本使用到的语言类别为text/javascript。
注意:有的网页中用默认“text/javascript”,这种写法是正确的,由于HTML5中可省略type属性,HTML5默认为text/javascript。
document.write()用来向页面输出能够包含HTML标签的内容。
经验:
→ 若是不使用<script>标签,浏览器就会将document.write(“<h1>Hello,JavaScript</h1>”)看成纯文原本处理,也就是说会把这条命令自己写到页面上。
→ <script>…</script>的位置并非固定的,能够包含在文档的任何地方,只要保证这些代码在被使用前已读取并加载到内存便可。
二、 JavaScript的执行原理
在JavaScript的执行过程当中,浏览器客户端与应用服务器端采用请求/响应模式进行交互。
(1) 浏览器客户端向服务器端发送请求:一个用户在浏览器的地址栏中输入要访问的页面(页面中包含JavaScript程序)。
(2) 数据处理:服务器端将某个包含JavaScript的页面进行处理。
(3) 发送响应:服务器端将含有JavaScript的HTML文件处理页面发送到浏览器客户端,而后由浏览器客户端从上而下逐条解析HTML标签和JavaScript,并将页面效果呈现给用户。
使用客户端脚本的好处:
(1) 包含JavaScript的页面只要下载一次便可,这样能减小没必要要的网络通讯。
(2) JavaScript程序由浏览器客户端执行,而不是由服务器端执行,所以能减轻服务器端的压力。
1.2.3 在网页中引用JavaScript的方式
JavaScript做为客户端程序,嵌入网页时有如下三种方式。
→ 内部JavaScript文件。
→ 使用外部JavaScript文件。
→ 直接在HTML标签中。
一、 内部JavaScript文件
直接使用<script>标签将JavaScript代码加入HTML文档中。这是最经常使用的方式,但这种方式一般适用于JavaScript代码较少,而且网站中的每一个页面使用的JavaScript代码均不相同的状况。
二、 使用外部JavaScript文件
外部JavaScript文件是将JavaScript代码写入一个外部文件中,以*.js为扩展名保存,而后将该文件指定给<script>标签中的“src”属性,这样就可使用这个外部文件了。这种方式适用于在若干个页面实现相同的JavaScript效果。
不管是使用<script>标签在网页中编写JavaScript代码,仍是引用js文件,浏览器都会按照<script>标签在页面中出现的前后顺序对它们依次进行解析。所以若是将<script>标签放在<head>中,那么意味着必须等到所有JavaScript代码被下载、解析和执行完成以后,才开始呈现网页内容,这样对于许多包含JavaScript代码的页面来讲,会致使浏览器呈现页面时出现明显的延迟,而延迟期间浏览器窗口将一片空白。为了不这个问题,如今许多网页开发者会把<script>标签放在<body>中,而且放在页面内容的后面。
注意:外部文件不能包含<script>标签,一般将扩展名为.js的文件放到网站目录中单独存放脚本的子目录中(通常为js),这样容易管理和维护。
三、 直接在HTML标签中
有时须要在页面中加入简短的JavaScript代码实现一个简单的页面效果,如单击按钮时弹出一个对话框等,这样一般会在按钮事件中加入JavaScript处理程序。
<input name=”btn” type=”button” value=”弹出消息框” onclick=”javascript:alert(‘欢迎你’);”/>
onclick是单击的事件处理程序,当用户单击按钮时,就会执行执行“javascript:”后面的JavaScript命令,alert()是一个函数,相似Java中的方法,做用是向页面弹出一个对话框。
这三种方式的应用场合。
→ 内部JavaScript文件适用于JavaScript特效代码量少,仅用于单个页面。
→ 外部js文件则适用于代码较多,重复应用于多个页面。
→ 直接在标签中写JavaScript则适合于极少代码,仅用于当前标签,可是这种方式增长了HTML代码,所以这种方式在实际开发中应用较少。
1.3 JavaScript核心语法
1.3.1 变量的声明和赋值
JavaScript是一种弱类型语言,没有明确的数据类型,也就是说,在声明变量时,不须要指定变量的类型,变量的类型由赋给变量的值决定。
在JavaScript中,变量是使用关键字var声明的。
语法:
var 合法的变量名;
其中var是声明变量所使用的关键字;“合法的变量名”是遵循JavaScript变量命名规则的变量名。JavaScript变量命名规则与Java变量命名规则相同,便可以由数字、字母、下划线和“$”符号组成,但首字母不能是数字,而且不能使用关键字命名。能够在声明变量的同时为变量赋值,这称为变量的初始化;也能够在稍后的脚本中为变量赋值。
声明变量的同时为变量赋值,例如:
var width=20;//在声明变量width的同时,将数值20赋给了变量width
var x,y,z=10;//在一行代码中声明多个变量时,各变量之间用逗号分隔
JavaScript区分大小写,因此大小写不一样的变量名表示不一样的变量。另外,因为JavaScript是一种弱类型语言,所以容许不声明变量而直接使用,系统将会自动声明该变量,例如:
x=68;//没有声明变量x,直接使用
规范
→ 千万要注意JavaScript区分大小写,特别是变量的命名、语句关键字等,这种错误有时很难查找。
→ 变量能够不通过声明而直接使用,但这种方法很容易出错,也很难查找排错,所以不推荐使用,在使用变量以前,请先声明后使用,这是良好的编程习惯。
1.3.2 数据类型
经常使用的基本数据类型以下。
→ undefined(未定义类型)。
→ null(空类型)。
→ number(数值类型)。
→ String(字符串类型)。
→ boolean(布尔类型)。
一、 typeof
ECMAScript提供了typeof运算符来判断一个值或变量究竟属于哪一种数据类型。
语法:
typeof(变量或值)
其返回结果有如下几种。
→ undefined:若是变量是undefined类型的,则返回undefined类型的结果。
→ number:若是变量是number类型的,则返回number类型的结果。
→ string:若是变量是string类型的,则返回string类型的结果。
→ boolean:若是变量是boolean类型的,则返回boolean类型的结果。
→ object:若是变量是null类型的,或者变量是一种引用类型,如对象、函数、数组,则返回object类型的结果。
二、 undefined类型
undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined。例如:
var width;
这行代码声明了变量width,且此变量没有初始值,将被赋予值undefined。
三、 null类型
只有一个值的类型是null,是一个表示“什么都没有”的占位符,能够用来检测某个变量是否被赋值。值undefined其实是值null派生来的,所以JavaScript把它们定义为相等的,例如:
alert(null==undefined);//返回值为true
尽管这两个值相等,但它们的含义不一样,undefined表示声明了变量但未对该变量赋值,null则表示对该变量赋予了一个空值。
四、 number类型
JavaScript中定义的最特殊的类型是number类型,这种类型既能够表示32位的整数,又能够表示64位的浮点数。下面的代码声明了存放整数值和浮点数值的变量。
var iNum=32;
var iNum=32.0;
整数也能够表示为八进制或十六进制,八进制首数字必须是0,其后的数字能够是任何八进制数字(0~7);十六进制首数字也必须是0,后面是任意的十六进制数字和字母(0~9和A~F)。
例如:
var iNum=070;//070等于十进制的56
var iNum=0x1f;//0x1f等于十进制的31
对于很是大或很是小的数,能够用科学计数法表示浮点数,也是number类型。另一个特殊值NaN(Not a Number)表示非数,它是number类型。例如:
typeof(NaN);//返回值为number
五、 String类型
1) 字符串定义
在JavaScript中,字符串是一组被引号(单引号或双引号)括起来的文本。例如:
var string1=”This is a string”;//定义了一个字符串string1
与Java不一样,JavaScript不对“字符”或“字符串”加以区别,所以下面的语句也定义了一个字符串。
var oneChar=”a”;//定义了只有一个字符“a”的字符串
2) 字符的属性与方法
JavaScript语言中的String也是一种对象。它也有一个length属性,表示字符串的长度(包括空格等),调用length的语法格式以下。
语法:
字符串对象.length;
var str=”this is JavaScript”;
var strLength=str.length;
JavaScript中,字符串对象的使用语法格式以下。
语法:
字符串对象.方法名();
String对象经常使用方法
方法 |
描述 |
indexOf() |
查找某个指定的字符串在字符串中首次出现的位置 |
charAt(index) |
返回在指定位置的字符 |
toLowerCase() |
把字符串转化为小写 |
toUpperCase() |
把字符串转化为大写 |
substring(index1,index2) |
返回位于指定索引index1和index2之间的字符串,而且包括索引index1对应的字符,不包括index2对应的字符 |
split(str) |
将字符串分割为字符串数组 |
最经常使用的是indexOf(str,index)方法,若是找到了指定字符串,则返回索引位置,不然返回-1。
index是可选的整数参数,表示从第几个字符开始查找。
六、 boolean类型
boolean类型数据被称为布尔型数据或逻辑型数据,boolean类型是ECMAScript中经常使用的类型之一,它只有两个值,true和false。
1.3.3 数组
同Java中的数组同样,JavaScript中的数组也是具备相同数据类型的一个或多个值的集合。数组用一个名称存储一系列的值,用下标区分数组中的每一个值,数组的下标从0开始。
JavaScript中的数组也须要先建立、赋值,再访问数组元素,并经过数组的一些方法和属性对数组元素进行处理。
一、 建立数组
语法:
var 数组名称=new Array(size);
其中,new是用来建立数组的关键字,Array表示数组的关键字,而size表示数据中可存放的元素总数,所以size用整数来表示。
二、 为数组元素赋值
在声明数组时,能够直接为数组元素赋值。
语法:
var fruit=new Array(“apple”,”orange”,”peach”,”banana”);
也能够分别为数组元素赋值。例如:
var fruit = new Array(4);
fruit[0]=”apple”;
fruit[1]=”orange”;
fruit[2]=”peach”;
fruit[3]=”banana”;
另外,除了Array()对象外,数组还能够方括号“[”和“]”来定义。例如:
var fruit = [“apple”,”orange”,”peach”,”banana”];
三、 访问数组元素
能够经过数组的名称和下标直接访问数组的元素,访问数组的表示形式:数组名[下标]。
四、 数组的经常使用属性和方法
数组的经常使用方法和属性
类别 |
名称 |
描述 |
属性 |
length |
设置或返回数组中元素的数目 |
方法 |
join() |
把数组的全部元素放入一个字符串,经过一个分隔符进行分隔 |
sort() |
对数组排序 |
|
push() |
向数组末尾添加一个或多个元素,并返回新的长度 |
1) length
数组的length属性用于 返回数组中元素的个数,返回值为整型。若是在建立数组时就指定了数组的size值,那么不管数组元素中是否存储了实际数据,该数组的length值都是这个指定的长度值size。例如,var score=new Array(6);无论数组中的元素是否存储了实际数据,score.length的值老是6。
2) join()
join()方法经过一个指定的分隔符把数组元素放在一个字符串中。
语法:
join(分隔符);
1.3.4 运算符号
经常使用的运算符
类别 |
运算符号 |
算术运算符 |
+、-、*、/、%、==、-- |
比较运算符 |
>、<、>=、<=、==、!=、===、!== |
逻辑运算符 |
&&、||、! |
赋值运算符 |
=、+=、-= |
其中,==表示等于,===表示恒等,!==表示不恒等,都是用于比较,可是==用于通常比较,===用于严格比较,==在比较时能够转换数据类型,===严格比较,只要数据类型不匹配就返回false。例如,”1”==true返回true,而”1”===true返回false。
1.3.5 逻辑控制语句
逻辑控制语句分为两类:条件结构和循环结构。
一、 条件结构
与Java同样,JavaScript的条件结构也分为if结构和switch结构。
1) if结构
基本语法格式以下。
语法:
if(表达式){
//JavaScript语句1;
}
else{
//JavaScript语句2;l
}
其中,当表达式的值为true时,执行JavaScript语句1,不然执行JavaScript语句2.
注意:若是if或else后只有一条语句,则能够省略大括号;若是if或else后有多行语句,则JavaScript语句必须括在大括号内。
2) switch结构
基本语法格式以下。
语法:
switch(表达式){
case 值1:
//JavaScript语句1;
break;
case 值2:
//JavaScript语句2;
break;
……
default:
//JavaScript语句n;
break;
}
与Java相似,当用于等值的多分支比较时,使用switch语句可使程序的结构更加清晰。case表示条件判断,关键字break会使代码跳出switch语句,若是没有关键字break,代码就会继续执行,进入下一个case。关键字default说明表达式的结果不等于任何一种状况。
与Java中的switch语句不一样的是,在JavaScript中的switch语句能够用于字符串。例如:
var weekday=”星期一”;
switch(weekday){
case “星期一”:
alert(“新的一周开始了”);
break;
case “星期五”:
alert(“明天就能够休息了”);
break;
default:
alert(“努力工做”);
break;
}
二、 循环结构
JavaScript中的循环结构分为for循环、while循环、do-while循环、for-in循环。
1) for循环语句
语法:
for(初始化;条件;增量或减量;){
//JavaScript语句;
}
其中,初始化参数告诉循环的开始值,必须赋予变量初值;条件用于判断循环是否终止,若知足条件,则继续执行循环体中的语句,不然跳出循环;增量或减量定义循环控制变量在每次循环时怎么变化。在三个条件之间,必须使用分号(;)隔开。
2) while循环语句
语法:
while(条件){
//JavaScript语句;
}
其特色是先判断后执行,当条件为真时,就执行JavaScript语句;当条件为假时,就退出循环。
3) do-while循环语句
语法:
do{
//JavaScript语句;
}while(条件);
该语句表示反复执行JavaScript语句,直到条件为假时才跳出循环。与while循环语句的区别在于,do-while循环语句先执行再判断。
4) for-in循环
JavaScript提供了for-in循环经常使用于对数组或者对象的属性进行循环操做。
语法:
for(变量 in 对象){
//JavaScript语句;
}
其中,“变量”为指定的变量,能够是数组元素,也能够是对象的属性。例如:
var fruit = [“apple”,”orange”,”peach”,”banana”];
for(var i in fruit){
document.write(fruit[i]+”<br/>”);
}
5) 中断循环
break:能够当即跳出整个循环。
continue:只是退出当前的循环,根据判断条件决定是否进行下一次循环。
1.3.6 注释
注释是描述部分程序功能或整个程序功能的一段说明性文字,注释不会被解释器执行,而是会被直接跳过。注释的功能是帮助开发人员阅读、理解、维护和调试程序。JavaScript语言的注释分为单行注释和多行注释两种。
单行注释,以//开始,以行末结束。
多行注释,以/*开始,以*/结束。
1.3.7 关键字和保留字
关键字标识了ECMAScript语句的开头和结尾,关键字是保留的,不能用做变量名或函数名。
JavaScript的关键字
关键字 |
关键字 |
关键字 |
关键字 |
关键字 |
break |
case |
catch |
continue |
default |
delete |
do |
else |
finally |
for |
function |
if |
in |
instanceof |
new |
return |
switch |
this |
throw |
try |
typeof |
var |
void |
while |
with |
保留字在某种意义上是为未来的关键字而保留的单词,所以保留字不能被用做变量名或函数名。
JavaScript的保留字
保留字 |
保留字 |
保留字 |
保留字 |
保留字 |
abstract |
boolean |
byte |
char |
class |
const |
debugger |
double |
enum |
export |
extents |
final |
float |
goto |
implements |
import |
int |
interface |
long |
native |
package |
private |
protected |
public |
short |
static |
super |
synshronized |
throws |
transient |
volatile |
|
|
|
|
1.3.8 经常使用的输入/输出
在网上冲浪时,页面上常常会弹出一些信息提示框,如注册时弹出提示输入信息的提示框,或者弹出一个等待用户输入数据的对话框等,这样的输入/输出在JavaScript中称为警告对话框(alert)和提示对话框(prompt)。
一、 警告(alert)
语法:
alert(“提示信息”);
该方法将弹出一个警告对话框,其内容能够是一个变量的值,也能够是一个表达式的值。
警告对话框是当前运行的网页弹出的,在对该对话框作出处理前,当前网页将不可用,后面的代码也不会被执行,只有对警告对话框进行处理后(单击“肯定”按钮或直接关闭),当前网页才会继续显示后面的内容。
二、 提示(prompt)
prompt()方法会弹出一个提示对话框,等待用户输入一行数据。
语法:
prompt(“提示信息”,”输入框的默认信息”);
该方法的返回值也能够被引用或存储到变量中,例如:
var color=prompt(“请输入你喜欢的颜色”,”红色”);
prompt()方法的第一个参数值显示在对话框上,一般是一些提示信息;第二个参数出如今用户输入的文本框中,且被选中,做为默认值使用。若是省略第二个参数,则提示对话框的输入文本框中会出现“undefined”,能够将第二个参数的值设置为空字符串,例如:
var color=prompt(“请输入你喜欢的颜色”,””);
若是用户单击“取消”按钮或者直接关闭提示对话框,则该方法将返回null;若是用户单击“肯定”按钮,则该方法将返回一个字符串型数据。
1.3.9 语法约定
一、 大小写的区分
JavaScript区分大小写,大写字母和小写字母是不能互相替换的,几个基本规则以下。
→ JavaScript的关键字,如for何if,永远都是小写的。
→ 内置对象,如Math何Date是以大写字母开头的。
→ 对象的名称一般是小写,如fruit。但其方法常常是多个单词的大小写混合,一般第一个字母是小写,以后单词的首字母是大写,如charAt()。
二、 变量、对象和函数的名称
当声明使用变量、对象或函数时,名称能够包括大写字母、小写字母、下划线和美圆符号($),可是必须以字母、下划线或美圆符号($)开头。
能够选择在变量名称中使用大写字母或小写字母,但必须牢记JavaScript是区分大小写的,count、Count、COUNT是三个不一样的变量。
三、 分号
JavaScript容许开发者自行决定是否以分号结束一行代码,若是没有分号,JavaScript就将行代码的结尾看做该语句的结尾。但不推荐使用,由于不属于规范的代码编写风格。
1.4 程序调试
在JavaScript中可使用Chrome调试工具和alert()方法两种方式调试程序。
1.4.1 Chrome开发人员工具
一、 语法错误的排除
使用Chrome浏览器打开HTML文件,按F12键进入脚本调试界面,表示开启运行时错误自动暂停功能,准肯定位出错脚本的位置;自动暂停按钮下方有一个选项,Pause On Caught Exception,若是选中,则即便发生运行时异常代码在try/catch范围内,Chrome开发者工具也可以在错误处停住。
Chrome的开发者工具经常使用八个大模块,每一个模块及其主要功能以下。
→ Elements:用于查看和编辑当前页面中的HTML和CSS元素。
→ Console:用于显示脚本中所输出的调试信息,或运行测试脚本等。
→ Sources:用于查看和调试当前页面所加载的脚本的源文件。
→ Network:用于查看HTTP请求的详细信息,如请求头、响应头及返回内容等。
→ TimeLine:用于查看脚本执行时间,页面元素渲染时间等信息。
→ Profiles:用于查看CPU执行时间与内存占用等信息。
→ Resource:用于查看当前页面所请求的资源文件,如HTML、CSS样式文件等。
→ Audits:用于优化前端页面,加速网页加载速度等。
二、 逻辑错误的排除
1) 肯定设置断点的位置
中止断点调试。
单步调试,不进入函数体内部。
单步调试,进入函数体内部。
跳出当前函数。
禁用全部的断点,不作任何调试。
2) 单步调试
3) 修改错误
1.4.2 alert()方法
经过alert()方法将不肯定的数据以信息框的方式展现,以此来判断出现错误的位置。
1.5 JavaScript经常使用语法——函数
在JavaScript中,函数相似于Java中的方法,是执行特定功能的JavaScript代码块。可是JavaScript中的函数使用更简单,不用定义函数属于哪一个类,所以调用时不须要用“对象名.方法名()”的方式,直接使用函数名称来调用函数便可。
JavaScript中的函数有两种,一种是JavaScript自带的系统函数,另外一种是用户自行建立的自定义函数。
1.5.1 经常使用系统函数
JavaScript提供了两种把非数字的原始值转换成数字的函数,即parseInt()和parseFloat()。另外,它还提供了一个检查是不是非数字的函数isNaN(),一般用于逻辑判断。
一、 parseInt()
parseInt()函数可解析一个字符串,并返回一个整数。
语法:
parseInt(“字符串”)
从位置0开始查看每一个字符,若0处就不是有效数字,则返回
NaN,若0处是有效数字,直到找到第一个非有效的字符为止,而后把该字符以前的字符串转换为整数。
二、 parseFloat()
parseFloat ()函数可解析一个字符串,并返回一个浮点数。
语法:
parseFloat(“字符串”)
从位置0开始查看每一个字符,若0处就不是有效数字,则返回
NaN,若0处是有效数字,直到找到第一个非有效的字符为止,而后把该字符以前的字符串转换为浮点数。
对于这个函数来讲,第一个出现的小数点是有效字符,若是有两个小数点,那么第二个小数点被看做无效。
三、 isNaN()
isNaN()函数用于检查其参数是不是非数字。
语法:
isNaN(x)
若是x是特殊的非数字值,则返回值是true,不然返回false。
经验:isNaN()函数一般用于检测parseInt()和parseFloat()的结果,以判断它们表示的是不是合法的数字,也能够用isNaN()函数来检测算数是否错误,如用0做为除数的状况。
1.5.2 自定义函数
JavaScript须要先定义函数,而后才能调用函数。
一、 定义函数
在JavaScript中,自定义函数由关键字function、函数名、一组参数及置于括号中的待执行的JavaScript语句组成。
语法:
function 函数名(参数1,参数2,参数3,…){
//JavaScript语句;
[return返回值]
}
→ function是定义函数的关键字,必须有。
→ 参数1、参数2等是函数的参数。由于JavaScript自己是弱类型,因此它的参数也没有类型检查和类型限定。函数中的函数是可选的,根据函数是否带参数,可分为不带参数的无参函数和有参函数。例如,无参函数:
function 函数名{
//JavaScript语句;
}
→ “{”和“}”定义了函数的开始和结束。
→ return语句用来规定函数返回的值。
二、 调用函数
要执行一个函数,必须先调用这个函数,当调用函数时,必须指定函数名及其后面的参数(若是有参数)。函数的调用通常和元素的事件结合使用。
语法:
事件名=”函数名()”;
无参函数例:
<input name="btn" type="button" value="显示5次欢迎学习JavaScript" onclick="study()"/>
<script type="text/javascript">
function study(){
for(var i=0;i<5;i++){
document.write("<h4>欢迎学习JavaScript</h4>");
}
}
</script>
study()是建立的无参函数,onclick表示按钮的单击事件,当单击按钮时调用函数study()。
有参函数例:
<input name="btn" type="button" value="请输入显示欢迎学习JavaScript的次数" onclick="study(prompt('请输入显示欢迎学习JavaScript的次数:',''))"/>
<script type="text/javascript">
function study(count){
for(var i=0;i<count;i++){
document.write("<h4>欢迎学习JavaScript</h4>");
}
}
</script>
count表示传递的参数,不须要定义数据类型,将prompt()方法返回的值做为参数传递给函数study(count)。
1.5.3 变量的做用域
与Java中的变量同样,在JavaScript中,根据变量做用范围不一样,可分为全局变量和局部变量。
JavaScript中的全局变量,是在全部函数以外的脚本中声明的变量,做用范围是该变量定义后的全部语句,包括其后定义的函数中的代码,以及其后的<script>与</script>标签中的代码。
JavaScript中的局部变量,是在函数内声明的变量,只有在该函数中且位于该变量以后的代码中可使用这个变量。
1.5.4 事件
事件是使用JavaScript实现网页特效的灵魂内容,当与浏览器进行交互的时候浏览器就会触发各类事件,来完成网页中的各类特效。
常见的事件
名称 |
说明 |
onload |
一个页面或一副图像完成加载 |
onclick |
鼠标单击某个对象 |
onmouseover |
鼠标指针移到某元素上 |
onkeydown |
某个键盘按键被按下 |
onchange |
域的内容被改变 |
补充:
一、数组。默认用英文逗号分隔。
<script type="text/javascript">
var arr = ["apple","orange","banana"];
document.write(arr);
</script>
运行结果:
二、数组。不会出现数组越界,与java中集合相似。
三、document.write(“使用\”-\”从新链接后”);
双引号中用双引号须要用“\”。