博客列表 >JavaScript 基础

JavaScript 基础


原创
2020年06月10日 15:09:03608浏览

JavaScript 基础

循环

JavaScript 支持不同类型的循环:

  • for - 循环代码块一定的次数
  • for/in - 循环遍历对象的属性
  • while - 当指定的条件为 true 时循环指定的代码块
  • do/while - 同样当指定的条件为 true 时循环指定的代码块

switch

  1. <script type="text/JavaScript">
  2. var myweek =1;//myweek表示星期几变量
  3. switch(myweek)
  4. {
  5. case 1:
  6. case 2:
  7. document.write("学习理念知识");
  8. break;
  9. case 3:
  10. case 4:
  11. document.write("到企业实践");
  12. break;
  13. case 5:
  14. document.write("总结经验");
  15. break;
  16. case 6:
  17. case 7:
  18. document.write("周六、日休息和娱乐");
  19. default:
  20. document.write("想干点儿啥就干点儿啥")
  21. }
  22. </script>

for

  1. for (语句 1; 语句 2; 语句 3)
  2. {
  3. 被执行的代码块
  4. }

语句 1 (代码块)开始前执行

语句 2 定义运行循环(代码块)的条件

语句 3 在循环(代码块)已被执行之后执行

  1. var mymoney,sum=0;//mymoney变量存放不同面值,sum总计
  2. for(mymoney=1;mymoney<=10;mymoney++)
  3. {
  4. sum= sum + mymoney;
  5. }
  6. document.write("sum合计:"+sum);
  7. // 输出结果为 "sum合计:55"

while 循环遍历

和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。

while语句结构:

  1. while(判断条件)
  2. {
  3. 循环语句
  4. }

使用while循环,完成从盒子里取球的动作,每次取一个,共6个球。

  1. <script type="text/javascript">
  2. var num=0; //初始化值
  3. while (num<=6) //条件判断
  4. {
  5. document.write("取出第"+num+"个球<br />");
  6. num=num+1; //条件值更新
  7. }
  8. </script>

do…while 循环遍历

do while结构的基本原理和while结构是基本相同的,但是它保证循环体至少被执行一次。因为它是先执行代码,后判断条件,如果条件为真,继续循环。

do…while语句结构:

  1. do
  2. {
  3. 循环语句
  4. }
  5. while(判断条件)

我们试着输出5个数字。

  1. <script type="text/javascript">
  2. num= 1;
  3. do{
  4. document.write("数值为:" + num+"<br />");
  5. num++; //更新条件
  6. }
  7. while (num<=5)
  8. </script>

退出循环break

在while、for、do…while、while循环中使用break语句退出当前循环,直接执行后面的代码。

格式如下:

  1. for(初始条件;判断条件;循环后条件值更新)
  2. {
  3. if(特殊情况)
  4. {break;}
  5. 循环代码
  6. }

当遇到特殊情况的时候,循环就会立即结束。看看下面的例子,输出10个数,如果数值为5,就停止输出。

  1. <script type="text/javascript">
  2. let num;
  3. for(num=1;num<=10;num++){
  4. if(num == 5){
  5. break;
  6. }
  7. document.write("数值为: "+num+"</br>");
  8. }
  9. </script>

考试成绩输出,如果成绩及格继续输出下个成绩,如果成绩不及格,退出并且后面成绩不输出, 我们使用break语句,退出循环。

  1. <script type="text/JavaScript">
  2. var mynum =new Array(70,80,66,90,50,100,89);//定义数组mynum并赋值
  3. var i=0;
  4. while(i<mynum.length)
  5. {
  6. if(mynum[i]<60)
  7. {
  8. document.write("成绩"+mynum[i]+"不及格,不用循环了"+"<br>");
  9. break;
  10. }
  11. document.write("成绩:"+mynum[i]+"及格,继续循环"+"<br>");
  12. i=i+1;
  13. }
  14. </script>

继续循环continue

continue的作用是仅仅跳过本次循环,而整个循环体继续执行。

语句结构:

  1. for(初始条件;判断条件;循环后条件值更新)
  2. {
  3. if(特殊情况)
  4. { continue; }
  5. 循环代码
  6. }

考试成绩输出,如果成绩及格继续输出下个成绩,如果成绩不及格,则不输出该成绩,我们使用continue语句完成

  1. <script type="text/JavaScript">
  2. var mynum =new Array(70,80,66,90,50,100,89);//定义数组mynum并赋值
  3. var i;
  4. for(i=0;i<mynum.length;i++)
  5. {
  6. if(mynum[i]<60)
  7. {
  8. document.write("成绩不及格,不输出!"+"<br>");
  9. continue;
  10. }
  11. document.write("成绩:"+mynum[i]+"及格,输出!"+"<br>");
  12. }
  13. </script>

在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名、性别、年龄和年级.

学生信息如下:

  1. ('小A','女',21,'大一'), ('小B','男',23,'大三'),
  2. ('小C','男',24,'大四'), ('小D','女',21,'大一'),
  3. ('小E','女',22,'大四'), ('小F','男',21,'大一'),
  4. ('小G','女',22,'大二'), ('小H','女',20,'大三'),
  5. ('小I','女',20,'大一'), ('小J','男',20,'大三')

接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的名字哦。

  1. <script type="text/javascript">
  2. let infos = new Array;
  3. infos[0] = ['小A','女',21,'大一'];
  4. infos[1] = ['小B','男',23,'大三'];
  5. infos[2] = ['小C','男',24,'大四'];
  6. infos[3] = ['小D','女',21,'大一'];
  7. infos[4] = ['小E','女',22,'大四'];
  8. infos[5] = ['小F','男',21,'大一'];
  9. infos[6] = ['小G','女',22,'大二'];
  10. infos[7] = ['小H','女',20,'大三'];
  11. infos[8] = ['小I','女',20,'大一'];
  12. infos[9] = ['小J','男',20,'大三'];
  13. let newArr = new Array;
  14. for(let i=0;i<infos.length;i++){
  15. if(infos[i][3] == '大一'){
  16. newArr.push(infos[i]);
  17. }
  18. }
  19. let girls = new Array;
  20. for(t=0;t<newArr.length;t++){
  21. if(newArr[t][1] == '女'){
  22. girls.push(newArr[t]);
  23. }
  24. }
  25. </script>

函数

定义一个函数

  1. function 函数名( )
  2. {
  3. 函数体;
  4. }

function定义函数的关键字,“函数名”你为函数取的名字,“函数体”替换为完成特定功能的代码。

函数调用

函数定义好后,是不能自动执行的,需要调用它,直接在需要的位置写函数名。

第一种情况:在<script>标签内调用。

  1. <script type="text/javascript">
  2. function add()
  3. {
  4. sum = 1 + 1;
  5. alert(sum);
  6. }
  7. add();//调用函数,直接写函数名。
  8. </script>

第二种情况:
在HTML文件中调用,如通过点击按钮后调用定义好的函数。

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function add()
  5. {
  6. sum = 5 + 6;
  7. alert(sum);
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. <form>
  13. <input type="button" value="click it" onclick="add()"> //按钮,onclick点击事件,直接写函数名
  14. </form>
  15. </body>
  16. </html>

有参数的函数

上面add函数不能实现任意指定两数相加。其实,定义函数还可以如下格式:

  1. function 函数名(参数1,参数2)
  2. {
  3. 函数代码
  4. }

注意:参数可以多个,根据需要增减参数个数。参数之间用(逗号,)隔开。

按照这个格式,函数实现任意两个数的和应该写成:

  1. function add(x,y)
  2. {
  3. sum = x + y;
  4. document.write(sum);
  5. }

x和y则是函数的两个参数,调用函数的时候,我们可通过这两个参数把两个实际的加数传递给函数了。

例如,计算5、8、3/7、1、4两组三个数的和。

  1. <script type="text/JavaScript">
  2. function add(x,y,z)
  3. {
  4. sum = x + y +z;
  5. document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>");
  6. }
  7. add(5,8,3);
  8. add(7,1,4);
  9. </script>

函数的返回值

上面函数中,通过”document.write”把结果输出来,如果想对函数的结果进行处理怎么办呢?我们只要把”document.write(sum)”这行改成如下代码

  1. <script type="text/JavaScript">
  2. function add(x,y,z)
  3. {
  4. sum = x + y +z;
  5. return sum;
  6. }
  7. console.log(add(5,8,3));
  8. console.log(add(7,1,4));
  9. </script>

函数实例

  1. <script type="text/javascript">
  2. //定义函数
  3. function add(x,y){
  4. return x-y;
  5. }
  6. //函数体,判断两个整数比较的三种情况
  7. function compare(m,n){
  8. let res = add(m,n);
  9. if(res == 0){
  10. return "一样大";
  11. }else if(res > 0){
  12. return m;
  13. }else{
  14. return n;
  15. }
  16. }
  17. let show1 = compare(5,4);
  18. let show2 = compare(6,3);
  19. //调用函数,实现下面两组数中,返回较大值。
  20. document.write(" 5 和 4 的较大值是:"+show1+"<br>");
  21. document.write(" 6 和 3 的较大值是:"+show2);
  22. </script>

事件

鼠标点击事件

onclick=”funcName()”

onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。

比如,我们单击按钮时,触发 onclick 事件,并调用两个数和的函数add2()。代码如下:

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function add2(){
  5. var numa,numb,sum;
  6. numa=6;
  7. numb=8;
  8. sum=numa+numb;
  9. document.write("两数和为:"+sum); }
  10. </script>
  11. </head>
  12. <body>
  13. <form>
  14. <input name="button" type="button" value="点击提交" onclick="add2()" />
  15. </form>
  16. </body>
  17. </html>

鼠标经过事件

onmouseover=”funcName()”

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,并执行onmouseover事件调用的程序。

现实鼠标经过”确定”按钮时,触发onmouseover事件,调用函数info(),弹出消息框,代码如下:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title> 鼠标经过事件 </title>
  6. <script type="text/javascript">
  7. function message() {
  8. let info = document.getElementById("password").value;
  9. if (isEmpty(info)) {
  10. confirm("请输入密码后,再单击确定!");
  11. }
  12. }
  13. /**
  14. * 判断变量是否为空,
  15. * @param {[type]} param 变量
  16. * @return {Boolean} 为空返回true,否则返回false。
  17. */
  18. function isEmpty(param) {
  19. if (param) {
  20. var param_type = typeof (param);
  21. if (param_type == 'object') {
  22. //要判断的是【对象】或【数组】或【null】等
  23. if (typeof (param.length) == 'undefined') {
  24. if (JSON.stringify(param) == "{}") {
  25. return true;//空值,空对象
  26. }
  27. } else if (param.length == 0) {
  28. return true;//空值,空数组
  29. }
  30. } else if (param_type == 'string') {
  31. //如果要过滤空格等字符
  32. var new_param = param.trim();
  33. if (new_param.length == 0) {
  34. //空值,例如:带有空格的字符串" "。
  35. return true;
  36. }
  37. } else if (param_type == 'boolean') {
  38. if (!param) {
  39. return true;
  40. }
  41. } else if (param_type == 'number') {
  42. if (!param) {
  43. return true;
  44. }
  45. }
  46. return false;//非空值
  47. } else {
  48. //空值,例如:
  49. //(1)null
  50. //(2)可能使用了js的内置的名称,例如:var name=[],这个打印类型是字符串类型。
  51. //(3)空字符串''、""。
  52. //(4)数字0、00等,如果可以只输入0,则需要另外判断。
  53. return true;
  54. }
  55. }
  56. </script>
  57. </head>
  58. <body>
  59. <form>
  60. 密码:<input id="password" name="password" type="password">
  61. <input name="确定" type="button" value="确定" onmouseover="message()" />
  62. </form>
  63. </body>
  64. </html>

鼠标移开事件

onmouseout = funcName()

鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

当把鼠标移动到”登录”按钮上,然后再移开时,触发onmouseout事件,调用函数message(),代码如下:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title> 鼠标移出事件 </title>
  6. <script type="text/javascript">
  7. function message() {
  8. let info = document.getElementById("password").value;
  9. console.log(123);
  10. console.log(info.length);
  11. if (info.length < 1) {
  12. confirm("请输入密码后,再单击确定!");
  13. }
  14. }
  15. </script>
  16. </head>
  17. <body>
  18. <form>
  19. 密码:<input id="password" name="password" type="password">
  20. <input name="确定" type="button" value="确定" onmouseout=message() />
  21. </form>
  22. </body>
  23. </html>

获取焦点事件

onfocus=funcName()

当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行。

如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数message()。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>获取焦点事件</title>
  7. <script type="text/javascript">
  8. function message(){
  9. console.log("在此输入姓名!");
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form>
  15. 姓名: <input type="text" class="username" value="请输入姓名" onfocus=message()>
  16. </form>
  17. </body>
  18. </html>

失去焦点事件

onblur = funcName()

onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。

如下代码, 网页中有用户和密码两个文本框。当前光标在用户文本框内时(即焦点在文本框),在光标离开该文本框后(即失焦时),触发onblur事件,并调用函数message()。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>失去焦点事件</title>
  7. <script type="text/javascript">
  8. function message(){
  9. let name = document.getElementsByClassName("username")[0].value;
  10. if(name.length <1){
  11. alert("姓名不能为空!");
  12. }
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form>
  18. 姓名: <input type="text" class="username" placeholder="请输入姓名" onblur=message()>
  19. </form>
  20. </body>
  21. </html>

内容选中事件

onselect = funcName()

选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。

如下代码,当选中用户文本框内的文字时,触发onselect 事件,并调用函数message()。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title> 内容选中事件 </title>
  6. <script type="text/javascript">
  7. function message() {
  8. alert("您触发了选中事件!");
  9. }
  10. </script>
  11. </head>
  12. <body>
  13. <form>
  14. 个人简介:<br>
  15. <textarea onselect=message() name="summary" cols="60" rows="5">请写入个人简介,不少于200字!
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议