JavaScript之基本语句
2019-08-14 10:31:27来源:博客园 阅读 ()
写在前面:前面的内容记录了JavaScript的一些基本概念,本次主要讲解一下JS中常用的语句。
和大多数其他编程语言一样,JS也主要包括:选择、循环、错误检测、函数等。JS的语句基本是由值、运算符、表达式、关键字和注释构成,但并不是语句一定包含所有以上要素。
计算机程序一般是指能够被计算机执行的一些列指令的集合。在编程语言中,这些指令被称为语句,JavsScript程序就是一系列的JavaScript语句集合。
一 选择语句
这里我打算用一个例子来说明,可能会更好理解:
1 var age = parseInt(prompt("please enter your age:")); 2 if(age < 0){ 3 alert("are you sure?"); 4 }else if(age > 120){ 5 alert("you must be dead!"); 6 }else{ 7 alert("you are still alice!"); 8 }
代码说明:if-else语句和其他大多数编程语言一样。通过判断if后面的括号内的表达式成立与否,决定是否执行紧跟其后的大括号内的代码。
上面的代码含义如下:第一行表示接受一个数字并保存在变量age中(现在不必在意parseInt()是什么东东)。
第二行代码在判断括号内的表达式是否成立,如果成立将执行第三行代码(我觉得他应该不会被执行,嘿嘿),然后
准备执行第四行。如果不成立,那么程序将跳过第三行,准备执行第四行。
第三行代码会弹出一个提示框。
第四行代码和第一行功能类似,判断age是否大于120,如果大于将执行第五行代码,否者将跳过,并准备执行第六行代码。
第五行代码也是弹出一个提示框。
第六行表示age既不满足if后面的条件,也不满足else if后面的条件,最终会被执行else后面的代码。
第七行也是弹出一个提示框。
如果有很多种情况,那我们岂不是要用很多if-else-if……?那样即难以阅读又难以维护。你当然不用那么做,JavaScript提供了另外一种选择的方式,请看下面的代码:
1 var myBirthdayMonth = parseInt(Math.random()*12+1); 2 switch(myBirthdayMonth){ 3 case 1 : alert("你属鼠的。"); 4 break; 5 case 2 : alert("你属牛的。"); 6 break; 7 case 3 : alert("你属虎的。"); 8 break; 9 //中间还有其他的属相 10 case 11 : alert("你属狗的。"); 11 break; 12 default:alert("你属猪的。"); 13 }
当有多种情况需要判断时,我们可以用switch-case语句。它的执行过程是把switch后括号内的表达式的值分别、依次和下面每一个case后面的值做比较,如果相等则执行该case后面的语句,执行完后若遇到break,则停止执行后面所有的语句(switch后大括号内的),并退出,如果前面所有的case 都无法匹配mybirthdayMonth,那么程序最终将执行default后面的语句。
上面的例子中我们假定了每一个月就有一种属相,第一行代码是随机生成一个1--12的数字充当生日的月份(这里不必在意它是怎么实现的)。
二 循环语句
Javascript提供了多种循环语句,for循环,while,do-while。循环即指反复执行某一段代码。
1、for循环
1 for(var i = 1;i <= 10; i++){ 2 console.log(i); 3 }
说明:var = 1;声明循环控制变量,i <= 10;判断循环条件,i ++更新控制变量(这里是以1为单元递增)。最终输出1-10.
简单的说以上循环实现的功能是:先初始化一个变量 i,初始值为1,然后判断i的值是否小于或等于10,若是,则执行大括号的代码(这里是在控制台打印出i的值),然后i的值加1,再判断i是否小于或等于10,一直循环到i的值大于10时,程序停止执行。
2、while循环
1 var i = 10; 2 while(i > 0){ 3 console.log(i); 4 i--; 5 }
说明:首先声明一个变量i,while循环执行时会首先判断i > 0是否成立,若成立,则执行大括号内的代码(这里是先在控制台打印i的值,单后把i的值减1),执行完后再判断i > 10是否成立,往复循环,直到表达式不成立。如果一开始表达式就不成立,必须i初始化时是-1,那么大括号内部的代码将永远不会执行。
3、do-while循环
1 var i = 10; 2 do{ 3 console.log(i); 4 i--; 5 }while(i > 0)
do-while循环和while循环执行过程几乎一样。不同点在于,它会先执行一次大括号内的代码,然后再开始判断。即使是i初始化时的值是-1,也会打印一次i的值,并把i的值减1。
三 异常和错误
1、throw
throw 语句抛出一个程序异常。
1 var userNumber = prompt("please enter a number:"); 2 if(isNaN(userNumber)){ 3 throw "this is not a number"; 4 }else{ 5 alert("yes,it is a number"); 6 }
说明:userNumber接受一个来自用户输入的值,if判断输入值是否是数字,如果不是数字将抛出一个异常“this is not a number”。若是一个数字,将弹出“yes it is a number”。需要注意的是,当执行到throw是,该语句之后若还有其他语句,都将不会被执行。
2、try-catch
1 try{ 2 alertt("hello world"); 3 }catch(err){ 4 console.log(err.message); 5 }finally{ 6 console.log("eventually I'll be executed"); 7 }
try定义了需要被检测的代码块。
catch定义了当检测到错误是需要被执行的代码,参数就是检测到的错误对象。包含了错的信息,代码等。
finally定义了无论是否检测到错误都将执行的代码。
try的好处是即使检测到错误,程序也不会被阻塞,它将继续往下执行。
3、自定义异常处理
通过throw和try-catch我们可以轻松自定义错误捕获和异常抛出。
1 var x = parseInt(Math.random() * 20); 2 try{ 3 if(x == "") throw "为空"; 4 if(isNaN(x)) throw "不是一个数字"; 5 if(x > 10) throw "太大了"; 6 if(x < 5) throw "太小了"; 7 } 8 catch(err) { 9 console.log("输入的值 " + err;) 10 }
throw语句抛出的异常将被当做错误对象传给catch,最后在catch语句中我们可以获取到关于错误的具体情况了(这里是x的范围)。
四 函数
1、函数定义
函数是一组可以在需要是被执行的语句,是执行特定功能的代码单元。JavaScript中的函数语法:
1 var myName = prompt("please enter your name:"); 2 function myFirstFunction(name){ 3 if(name){ 4 alert("hello" + name + "."); 5 }else{ 6 alert("hello"); 7 } 8 };
9 myFirstFunction(myName);
函数使用function关键字声明,后面紧跟一对小括号“()”,小括号中可以有0或多个参数,再然后是一对大括号“{}”和里面待执行的代码。
上面的例子:声明一个全局变量myName,它的值从用户输入获取,function声明一个函数,函数名为myFirstFunction,它接受一个参数,参数名为name,最后执行函数是函数名加一对小括号:myFirstName(),小括号中提供函数声明是需要的一个参数,传参的作用其实就是把该变量的值赋值给参数,这里是把myName的值赋值给name,这样在函数内部就可以使用myName的值而不改变myName的值了。
2、函数返回值
函数不止可以执行特定代码,还可以返回一些数据,供其他使用。
1 function add(a,b){ 2 return a + b; 3 } 4 var num = add(10,5); 5 console.log(num);//15
要想在函数执行完毕后返回一些东西,可以在函数最后使用return关键字,后面跟上待返回的值即可。
上面的例子:声明一个叫做add的函数,需要两个参数a和b,执行函数会返回a加b的和,这里是把函数的返回值赋值给一个变量num。
最后:如果大家觉得这里写的不够清楚或有问题,建议大家上W3School或MDN查看详细教程。
原文链接:https://www.cnblogs.com/ruhaoren/p/11322748.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:js循环修改数组属性key值
- javascript面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- 如何用javascript连接access数据库 2020-03-20
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash