一,JavaScript基础语句
1,判断语句
判断语句即条件判断语句,有if、if…else、if…else if、switch等语句。
①if语句
简单的if语句,语句格式如下
if(表达式){
语句
}
表达式结果为true,执行语句输出结果,结果为false 直接输出结果。
if…else 语句,语法格式如下
if(表达式){
语句1
}
else{
语句2
}
表达式结果为true,执行语句1输出结果,表达式结果为false,执行语句2输出结果。
if…else if 语句,语法格式如下
if(表达式1){
语句1
}
else if(表达式2){
语句2
}
else{
语句3
}
表达式1为真,执行语句1;表达式1为假,判断表达式2,若表达式2为真执行语句2;若表达式2也为假,则执行语句3。
一个简单的例子:
<body>
<script type="text/javascript">
var garde='';
var score=85;
if(score>=90){
garde='优秀';
}
else if(score>=75){
garde='良好';
}
else if(score>=60){
garde='及格';
}
else garde='不及格';
alert("张三的成绩是:"+garde);
</script>
</body>
运行结果:
2,循环语句
循环语句有while、do…while、for、以及循环语句的嵌套。
while语句的语法格式如下:
while(表达式){
语句}
如果表达式(循环条件)为真,则执行语句(循环体),执行语句后回到表达式继续判断表达式条件并循环这个过程,直到表达式为假,则输出结果。
do…while语句语法格式如下:
do{
语句
}while(表达式);
do…while语句先执行一遍语句(循环体)后判断表达式(循环条件),若表达式为真,则回到循环体再执行一遍循环体,若表达式依旧为真则循环此过程,直到表达式为假,输出结果。
for语句语法格式如下:
for(初始表达式;条件表达式;迭代表达式){
语句}
条件表达式为真,执行循环体后改变循环变量值(迭代表达式)继续执行条件表达式,若条件表达式依旧为真,则循环此过程,直到循环变量无法满足条件表达式,即条件表达式为假时结束循环,并输出结果。
上例子:
<body>
<script type="text/javascript">
var i=0,sum=0;
for(i=1;i<100;i++)
if(i%2!=0)
sum+=i;
document.write("100以内所有奇数的和为:"+sum);
</script>
</body>
运行结果:
循环语句之间可以进行嵌套,在一个循环里嵌套另一个循环,就可以实现循环嵌套,例如九九乘法表。
<body>
<h1>九九乘法表</h1>
<script type="text/javascript">
var i,j;
for(i=1;i<10;i++){
for(j=1;j<=i;j++)
document.write(j+"*"+i+"="+j*i+"
");
document.write("<br>")
}
</script>
</body>
其中 为空格转义字符
运行结果:
另有两个循环控制语句break和continue
continue
用于跳出本次循环并开始执行下一次循环,语法格式为
continue;
break
用于跳出循环并开始执行下一部分语句,语法格式为
break;
3,异常处理语句
JavaScript中的异常处理语句是从Java中移植进来的,其作用是处理程序中出现的莫名其妙的错误。
①try…catch…finally语句
语法格式为
try{
somstatements;
}
catch(exception){
somesstatements;
}
finally{
somestatements;
}
- try 尝试执行代码的关键字
- catch 捕捉异常的关键字
- finally 最终一定会被处理的代码的关键字,该关键字和后面大括号中语句可以省略。
例如当程序中出现错误方法名时,catch区域将弹出异常提示,并最终弹出finally区域的信息提示。
<body>
<script type="text/javascript">
var str="hello javascript";
try{
document.write(str.charat(3));
}
catch(exception){
alert("运行时有异常发生");
}
finally{
alert("结束try...catch...finally语句");
}
</script>
</body>
运行结果:
②Error对象
try…catch…finally语句中catch捕捉的错误对象即为Error对象,当JavaScript代码运行中出现错误或者异常时,就会输出一个Error对象实例来描述错误。
Error对象两个属性:
- name,表示异常类型的字符串
- message,表示实际异常信息
<script type="text/javascriot">
var str="hello javascript";
try{
document.write(str.charat(3));
}
catch(exception){
alert("实际错误信息为:"+exception.messsage+"\n
错误类型字符串为"+exception.name);
}
finally{
alert("结束try...catch...finally语句");
}
</script>
运行结果为:
③throw语句
一种情况是JavaScript代码语法没有错误,但错在逻辑,对于这种错误,JavaScript不会显示异常,这时需要创建一个Error对象实例并使用throw来抛出错误。
语句格式:
throw new Error("somestatements");
例如除数不为0:
<body>
<script type="text/javascript">
try{
var num=1/0;
if(num=="Infinity")
throw new Error("除数不能为
}
catch(e){
alert(e.message);
}
</script>
</body>
运行结果:
二,函数
函数是可以作为一个逻辑单元的一组JavaScript代码。函数的使用可以提高代码的重用率,使代码更加简洁。
1,函数定义与调用
函数定义:在JavaScript中,可以使用function语句来定义一个函数,关键字是function,语法格式为:
function 函数名([参数1,参数2,......]){
语句
[return 返回值]
}
- 函数名,函数名必须选中且唯一,命名时必须区分大小写。
- 参数,可选,用于指定参数列表,多个参数时中间用逗号隔开,最多不能超过255个参数。
- 语句, 必选,函数体内容,即用于实现函数功能的语句。
- 返回值,可选,用于返回函数值,返回值可以是常量、变量、表达式。
例如:
function account(price,number)
var sum=price*number;
return sum;
函数调用:
①函数的简单调用,
函数名(传递给函数的参数1,传给函数的参数2,......);
注意:函数的定义语句一般放在html文件的(head)段中,函数的调用可以放在html文件的任意位置。
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>调用函数</title>
<script type="text/javascript">
function OutputImage()
document.write("<img str='1.jpg'>");
</script>
</head>
<body>
<script type="text/javascript">
OutputImage();
此函数可以用来实现图片输出。
②通过连接调用函数
使用 javascript:函数名() 此格式来调用函数当用户点击连接时即实现了函数的调用,相关函数被执行
语句格式为:
<a href="javasccript:test();">单击连接</a>
③在事件中响应调用函数
用户点击某按钮或某个复选框时触发事件。
使用input type=“button” value=“提交” οnclick="函数名()"调用。
2,函数参数
在定义函数时,将指定函数称为形式参数(形参),将调用时实际传递的值称为实际参数(实参)。定义参数格式为:
function 函数名(形参1,形参2,......){
函数体
}
调用为:
函数名(实参1,实参2,......);
3,函数返回值
函数返回值即函数返回的数据,格式如下
return 表达式;
作用是结束函数,并把后面的表达式的值作为函数返回值。
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>调用函数</title>
<script type="text/javascript">
function price(oprice,number){
var total = oprice*number;
return total;
}
</script>
</head>
<body>
<script type="text/javascript">
alert("总价是"+price(2400,3));
</script>
</body>
总价是:
4,嵌套函数
嵌套函数是指在一个函数中使用了其它函数,嵌套函数的使用分为函数的嵌套定义和函数的嵌套调用。
①函数的嵌套定义
即在一个函数中再定义另一函数。语法格式如下
function outf(){
function inf(x,y){
alert(x+y);
}
inf(2,3);
}
outf();
执行outf函数然后调用嵌套的inf函数inf(2,3)传递两个参数,计算两数之和并返回结果。
②函数的嵌套调用
在JavaScript中允许在一个函数体中对另一个函数体进行调用,这就是函数的递归调用。
function a(){
alert("调用函数a");
}
function b(){
a();
}
b();
在函数b中对函数a进行调用后输出。
5,递归函数
所谓递归调用即自己调用自己的函数调用形式。
格式如下:
function 函数名(参数1){
if(终止条件) return 常量;
函数名(参数2);
}
递归调用经典例子为斐波那契数列,注意递归函数必须有一个终止条件结束递归,否则会一直走下去。
6,内置函数
数值处理函数:
函数 | 说明 | 语法格式 | 备注 |
---|---|---|---|
parseInt() | 将字符型转为整形 | parseInt(string,[n]); | 用于将首位位数字的字符串转换为数字,如果首位不是以数字开头,那么将返回NaN。n指出数据为几进制可省略。 |
parseFloat() | 将字符型转为浮点型 | parseFloat(string); | 用于将首位位数字的字符串转换为浮点型数字,如果首位不是以数字开头,那么将返回NaN。 |
isNaN() | 判断数值是否为NaN | isNaN(num); | 用于验证某值是否为NaN,num为要验证的数字。 |
isFinite() | 判断值是否有限 | isFinite(num); | 用于判断其参数是否有限。 |
字符串处理函数:
函数 | 说明 | 格式 | 备注 |
---|---|---|---|
eval | 求字符串中表达式的值 | eval(string); | string代指需要计算的字符串,其中含义要计算的表达式或者要执行的语句。 |
encodeURI | 将URI字符串进行编码 | encodeURI(url); | |
decodeURI | 对已编码的URI字符串解码 | decodeURI(url); |
注意:URI和URL都可以表示网络资源地址,URI比URL范围大些,但一般情况下URI与URL范围等同。
7,变量的作用域
①变量根据作用范围的不同可分为全局变量和局部变量。
全局变量:定义在所有函数之外的变量,调用函数时无需传参。
局部变量:定义在函数体内的变量,只能在函数内部起作用,函数之外不可调用。
②变量优先级
如果全局变量在函数体内又被定义了一次,则优先执行函数体内的变量。
8,定义函数
①定义函数:
var 变量名=function(参数1,参数2,......){
函数体
}
②构造函数:
var 变量名 =new Function("参数1","参数2",......"函数体");