JavaScript 学习笔记之语句_基础知识

一、条件分支语句:if

基本格式:

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

执行流程:

二、循环语句

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

2.1.1while语句

基本格式:

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

执行流程:

2.1.2 for语句

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

执行流程:
 

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

2.2.1、do-while语句

基本格式:

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

执行流程:

三、精准的迭代语句: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 <语句组>
}

执行流程:

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?
}

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

时间: 2024-10-03 14:46:34

JavaScript 学习笔记之语句_基础知识的相关文章

JavaScript 学习笔记之数据类型_基础知识

一.分类 基本数据类型:undefined.null.string.Boolean.number 复杂数据类型:object object的属性以无序的名称和值对的形式 (name : value) 来定义 二.详解 1.undefined:undefined类型只有一个值:undefined,在使用var对变量进行声明但未初始化时,这个变量的值就是undefined. 包含undefined值的变量与尚未定义的变量是不一样的,以下这个例子可以说明: 复制代码 代码如下:     var dem

JavaScript 学习笔记之操作符_基础知识

一.一元操作符 1.自增自减操作符:分为前置型和后置型: 前置型:++a;--a; 后置型:a++;a--; 例: 复制代码 代码如下:    <script type="text/javascript">          var a, b,i= 1,j=1;          a=i++;          b=++j;          alert("a="+a+",i="+i+",b="+b+",

Javascript学习笔记1 数据类型_基础知识

代码类型只有一种形式就是function. undefined:未定义,我们也可称之为不存在,typeof(undefined)=undefined. null:为空.undefined是不存在,而null是存在,但却无.typeof(null)=object,但null又不是object,这就是null的神奇而独特之处. boolean:true or false. Number:NaN和Infinity是两个特殊之数,NaN代表一个无法用数值来表示的数字,而Infinity代表一个无穷大的数

Javascript学习笔记3 作用域_基础知识

在Javascript,全局环境本身就一个对象.在浏览器宿主中这个对象是window,而当Javascript用于其它非浏览器的宿主,如嵌入式的环境中,可能会是其它的对象. 在这里也纠正一个观念,有很多人都认为Javascript只在浏览器中使用,其实Javascript也能在很多非Web情况下使用,据介绍Javascript在一些基于嵌入式的应用领域表现得也很出色,当然这些我也只是听过传说而已. 言归正传,当我们写下:var i=1时,其实就是声明了一个window作用域的一个变量. 而当我们

Javascript学习笔记2 函数_基础知识

就像我们可以写成这样的形式一样: 复制代码 代码如下: function Hello() { alert("Hello"); } Hello(); var Hello = function () { alert("Hello"); } Hello(); 其实都是一样的. 但是当我们对其中的函数进行修改时,会发现很奇怪的问题. 复制代码 代码如下: <script type="text/javascript"> function Hel

JavaScript学习笔记之定时器_基础知识

定时器1 用以指定在一段特定的时间后执行某段程序. setTimeout(): 格式:[定时器对象名=] setTimeout("<表达式>",毫秒) 功能:执行<表达式>一次. 例子: 复制代码 代码如下: <!DOCTYPE html> <html>   <head>     <title>timer1.html</title>     <meta http-equiv="keywo

Javascript 读书笔记索引贴_基础知识

一. 基础篇 Javascript学习笔记1 数据类型 Javascript学习笔记2 函数 Javascript学习笔记3 作用域 Javascript学习笔记4 Eval函数 Javascript学习笔记5 类和对象 Javascript学习笔记6 prototype的提出 Javascript学习笔记7 原型链的原理 二. 实战篇Javascript学习笔记8 用JSON做原型 Javascript学习笔记9 prototype封装继承

javascript学习笔记(一)基础知识_基础知识

基本概念 javascript是一门解释型的语言,浏览器充当解释器. js执行引擎并不是一行一行的执行,而是一段一段的分析执行. 延迟脚本 HTML4.0.1中定义了defer属性,它的用途是表明脚本在执行时不会影响页面的构造.也就是说,脚本会延迟到整个页面都解析完毕后再执行.因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行.在XHTML文档中,要把defer属性设置为defer="defer" 异步脚本 html5为<scrip

JavaScript学习心得之概述_基础知识

  一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成 ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) 1.1ECMAScript      ECMA-262定义的ECMAScrip与Web浏览器没有依赖关系,ECMA-262定义的只是这门语言的基础,提供核心语言功能 ECMAScript是通过ECMA-262标准化的脚本语言,ECMA-262规定语言的:语法.类型.语句.关键字.保留字.操作符.对象 1.2 DOM(Document Obj