从头撸JavaScript--语句篇

以用途划分,JavaScript 语句可以分为:声明、分支控制、循环控制、流程控制异常处理和其他。

 

以结构划分,JavaScript 语句又可以分为单句和复句。

  • 单句:也称单行语句,由一个或多个关键字和表达式构成,用来完成简单的运算。
  • 复句:使用大括号包含一个或多个单句,用来设计代码块、控制流程等复杂操作。

单句

单句比较简单,一般占据一行,可以不执行任何任务,或者运算表达式,或者执行简短的命令等。单句主要包括:

  • 空语句
  • 表达式语句
  • 声明语句
  • 调试语句
  • 启用严格模式语句

表达式语句

     任何表达式加上分号就是表达式语句。

//下面是一行最简单的句子。只有一个直接量,也是最简单的表达式。

 true;  //最简单的句子


//下面是赋值语句,代码虽然很长,不过也只是一个表达式语句。
  o = new ((o == "String") ? String : (o == "Array") ? Array : (o ==
   "Number") ? Number : (o == "Math") ? Math : (o == "Date") ? Date : (o == 
   "Boolean") ? Boolean : (o == "RegExp") ? RegExp : Object);
//赋值运算符右侧是一个多重条件运算,格式化显示如下:

    new ((o == "String") ? String  :
        (o == "Array") ? Array  :
        (o == "Number") ? Number  :
        (o == "Math") ? Math  : 
        (o == "Date") ? Date  :
        (o == "Boolean") ? Boolean  :
        (o == "RegExp") ? RegExp  :
        Object);

表达式与语句的区别:

  • 子句法角度分析,表达式是短句;语句是一个句子。
  • 从结构角度分析,表达式由操作数和运算符组成;语句由命令(关键字)和表达式组成。表达式之间可以通过空格分隔;而语句之间必须通过分号分隔。表达式可以包含子表达式,语句也可以包含子语句。
  • 从表现角度分析,表达式呈现静态性;而语句呈现动态性。
  • 从结果趋向分析,表达式必须返回一个值;而语句则是完成特定操作。

 

声明语句

声明语句:声明变量、声明函数。使用 var 语句可以声明变量。

//声明变量
 var a = 0,b = true,c,d;  //声明四个变量,并部分赋值


//声明函数
  function f() {
        console.log("声明函数");
  }

 

 

复句

多个子句(Statement)放在一起就是一个语句段(Statement Block),如果使用大括号括起来,就成了复句(Statements)。单个句子被包括在大括号中也是复句。

复句又称语句块,语句块是一个独立运行的单元。在没有流程控制的情况下,块内语句要么都执行,要么都不执行。复句不需要使用分号与后面代码进行分隔,不过添加分号也不会出错。

    {
        //空复句
    }
    {
        console.log("单复句);
    }
    {
        console.log("外层复句");
        {
            console.log("内层复句");
        }
    }

 

拓展项

空语句

空语句就是没有任何可执行的代码,是有一个分号;。空语句没有任何副作用,也不会执行任何操作,相当于一个占位符。

在循环结构中使用空语句可以设计假循环。

//下面代码在大括号内没有写入分号,但是 JavaScript 能够自动添加分号,定义一个空语句。
  
for(var i = 0;i < 10;i++){ }

//上面代码可以简写为:

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

//上面语法容易引发错误,可以加上注释,或者复合使用。

  for(var i = 0;i < 10;i++)/*空语句*/;
  for(var i = 0;i < 10;i++){ ; }

   JavaScript自动补全

//当语句单独一行显示时,可以省略分号,JavaScript 在解析时会自动补全分号。

//只有当省略分号,JavaScript 无法合并上下行进行解析时,才会补加分号。例如:

    var a
    a = 1

//合并为一行后等于:

    var a a = 1


//JavaScript 无法理解这句话的意思,于是添加分号,定义为两条语句来解析。
//但是,对于下面 3 行代码:

    var b = ""
    var a = b
    (a = "abc").toUpperCase()

//如果不添加分号,JavaScript 就会错误解析为如下两条语句:

    var b = "";
    var a = b(a = "abc").toUpperCase();

//第二行结尾是变量 b,第三行开头是小括号,于是 JavaScript 就理解为 b() 函数的调用。

//提示:
//以 [、(、/、+、- 这 5 个符号开头的一行代码,很容易与上一行代码结合。例如:

    a
    [3].length  //上下行合并解析为:a[3].length
    a
    /b/  //上下行合并解析为:a/b/
    a
    -1  //上下行合并解析为:a-1
    a
    +1  //上下行合并解析为:a+1


/* 但是对于下面两种特例需要警惕。
1) return、break 和 continue 三个语句,如果分行显示,JavaScript 不会自动合并下一行进行解析。例如:
*/

    return
    1;  //不会合并,直接解析为两条语句:return 和 1;


//2) ++(递增)和 --(递减)运算符会与下一行变量主动合并解析,但不会与上一行变量合并解析。例如:

    var a = b = 1;
    a  //结果为1
    ++
    b  //结果为2


     因此,当所有句子结束时,建议养成良好习惯,使用分号进行定义。只有这样,当代码被压缩时,才不至于出现各种异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值