JavaScript 学习笔记之语句


Posted in Javascript onJanuary 14, 2015

一、条件分支语句:if

基本格式:

if (<表达式1>){
    <语句组1>
}else if (<表达式2>){
    <语句组2>
}else{
    <语句组3>
}

执行流程:

JavaScript 学习笔记之语句

二、循环语句

2.1前测试循环语句:在循环体内的代码被执行之前就对出口条件求值。

2.1.1while语句

基本格式:

do {
    <语句组>
} while (<表达式>)

执行流程:

JavaScript 学习笔记之语句 2.1.2 for语句

基本格式:
for (<初始表达式>;<条件表达式>;<变动量表达式>){
    <语句组>
}

执行流程:
 JavaScript 学习笔记之语句

2.2后测试循环语句:在循环体中的代码被执行之后才会测试出口条件。

2.2.1、do-while语句

基本格式:

do {
    <语句组>
} while (<表达式>) ;

执行流程:

JavaScript 学习笔记之语句

三、精准的迭代语句:for-in

基本格式:
for ( 属性 in 对象 ){
    <语句组>
}

作用:重复执行指定对象的所有属性,可以用来枚举对象的属性。

 例子:

<html>

<body>

<p>点击下面的按钮,循环遍历对象 "person" 的属性。</p>

<button onclick="myFunction()">点击这里</button>

<p id="demo"></p>

<script>

function myFunction()

{

var x;

var txt="";

var person={fname:"Bill",lname:"Gates",age:56}; 

for (x in person)

{

txt=txt + person[x];

}

document.getElementById("demo").innerHTML=txt;

}

</script>

</body>

</html>

如果要表示的对象为null或者undefined,循环体将不再执行,或者抛出错误,因此,在执行for-in循环时,应该先检测改对象的属性值是不是null或者undefined。

四、Lable语句

基本语法:

Label: <语句组>

如: begin: for (var i = 0; i < 10 ; i++ ){
                         alert(i);
                   }
举例说明lable语句的作用:
未加lable:

var num = 0;

        for (var i = 0 ; i < 10 ; i++){

             for (var j = 0 ; j < 10 ; j++){

                  if( i == 5 && j == 5 ){

                        break;

                  }

             num++;

             }

        }

        alert(num);//95

加入lable:

var num = 0;

    outPoint:

    for (var i = 0 ; i < 10 ; i++){

         for (var j = 0 ; j < 10 ; j++){

              if( i == 5 && j == 5 ){

                    break outPoint;

              }

         num++;

         }

    }

    alert(num); //55

第一个例子输出95不难理解,第二个例子为什么输出55呢,是因为执行到break outpoint时,直接跳出到putpoint层,执行alert语句。

如果把第二个例子改成下面这样:

                var num = 0;

                 for (var i = 0 ; i < 10 ; i++){

                     outPoint: 

                     for (var j = 0 ; j < 10 ; j++){

                         if( i == 5 && j == 5 ){

                             break  outPoint;

                         }

                         num++;

                     }

                 };

         alert(num);//95

这个结果和第一个例子的结果是一致的。

五、break和continue语句

5.1break语句:

       var num = 0;

        for (var i = 1 ; i < 10 ; i++){

            if(i%5==0){

                break;

            }

            num++;

        };

        alert(num);//4

break语句执行后跳到alert语句

5.2continue语句:

  var num = 0;

  for (var i = 1 ; i < 10 ; i++){

     if(i%5==0){

        continue;

     }

       num++;

   };

   alert(num);//8

continue语句执行后跳到for()循环,继续执行循环,直到循环条件不成立。

六、with语句

基本语法:

with (object) {
    statements
}
举例说明:
不使用with的写法:

var qs = location.search.substring(1);

var hostName = location.hostname;      

var url = location.href;

 alert(qs);

 alert(hostName);

 alert(url);

使用with的写法:

  with(location){

             var qs = search.substring(1);

             var hostName = hostname;      

             var url = href;

         }

         alert(qs);

         alert(hostName);

         alert(url);

从上面例子可以看出:with语句的作用是将代码的作用域设置到一个特定的对象中、减少的重复输入。

但是js的解释器需要检查with块中的变量是否属于with包含的对象,这将使with语句执行速度大大下降,并且导致js语句很难被优化。

因此并不建议大规模使用with语句。

七、swith语句

基本语法:
switch (<表达式>) {
    case <数值1>:<语句组1>
                 break;
    case <数值2>:<语句组2>
                 break;
    ...
    default <语句组>
}

执行流程:

JavaScript 学习笔记之语句

switch语句可以是任何数据类型,每个case的值也不一定是常量,也可以是变量、表达式等,例如:

  switch ("hello world") {

             case "hello" + " world": 

                 alert("Greeting was found.");

                 break;

             case "goodbye": 

                 alert("Closing was found.");

                 break;

             default: 

                 alert("Unexpected message was found.");

         }
         var num = 25;

         switch (true) {

             case num < 0: 

                 alert("Less than 0.");

                 break;

             case num >= 0 && num <= 10: 

                 alert("Between 0 and 10.");

                 break;

             case num > 10 && num <= 20: 

                 alert("Between 10 and 20.");

                 break;

             default: 

                 alert("More than 20.");

         }

switch语句在比较时使用的是全等操作符比较,因此不会发生类型转换。

练习:

 <script type="text/javascript">

         var count = 10;

         for (var i=0; i < count; i++){

             alert(i);

         }

         alert(i);   //输出什么?

     </script>

for(;;){
    alert("2");//输出多少次2?
}

以上就是本文的全部内容了,希望对小伙伴们能够有所帮助。

Javascript 相关文章推荐
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
Dec 08 Javascript
Vue表单实例代码
Sep 05 Javascript
基于JavaScript实现购物车功能
Feb 07 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
vue单个组件实现无限层级多选菜单功能
Apr 10 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 #Javascript
JavaScript 学习笔记之操作符
Jan 14 #Javascript
Node.js的包详细介绍
Jan 14 #Javascript
JavaScript 学习笔记之数据类型
Jan 14 #Javascript
ExpressJS入门实例
Jan 14 #Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 #Javascript
JavaScript 学习笔记之变量及其作用域
Jan 14 #Javascript
You might like
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php addslashes 函数详细分析说明
2009/06/23 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP5.3新特性小结
2016/02/14 PHP
Yii2中datetime类的使用
2016/12/17 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
重定向实现代码
2006/11/20 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
基于JavaScript获取base64图片大小
2019/10/18 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
查看Django和flask版本的方法
2018/05/14 Python
python框架中flask知识点总结
2018/08/17 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
python解析含有重复key的json方法
2019/01/22 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
自我评价范文分享
2014/01/04 职场文书
勾股定理课后反思
2014/04/26 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
招标承诺书
2014/08/30 职场文书
医学检验专业自荐信
2014/09/18 职场文书
工作收入证明模板
2014/10/10 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
于丹论语心得观后感
2015/06/15 职场文书
Python基础详解之描述符
2021/04/28 Python