语句执行是在干嘛呢?
语句里面包含了表达式(expression),表达式用于求值,语句用于赋值。语句本质上都是赋值语句。给不同的变量赋值,在不同的条件下赋值,循环地赋值,等等。
计算机的计算,就是在不停地求值赋值。
以js为例,其语句有如下3大类:声明语句,流程控制语句,异常处理语句。
1、声明语句:
创建一个标识符,以方便赋值、求值、组合值。
- 变量声明:var,let,const(生成一个变量以供赋值)
- 函数声明:function (封装一组语句)
- 类声明:class(封装变量与函数)
- 导入导出:import, export (引入或导出变量、函数或类,作为资产使用)
2、流程控制语句:
识别不同的条件,进行分支赋值或循环赋值。本质都是跳转,跳转过去干嘛呢?求值赋值!
- 条件语句:if,else,switch
- 基础循环语句:for, while, do while,
- 便利循环语句:for in, for of,
3、异常处理语句:
当求值或赋值出错时如何进行下一步
- try catch finally
小结:
上面的三类语句中,声明语句可以看成基本语句,流程控制语句是编排语句,可以看成语句的语句,异常处理是出错后执行的语句。进一步总结,js的语句是三类语句:基本语句,语句的语句,出错后的语句。js是这样,其他所有编程语言也是这样。
其他语句:
js还有空语句,块语句,debugger语句,label语句,with语句(已废弃),生成器语句。这些语句,也是在进行控制与赋值。
所以本质上,程序就是在求值与赋值,而语句就是在组织与编排求值与赋值的逻辑。语句有很多,通过赋值这一套思维模型,可以把所有语句都串联起来。
一般,表达式重点是求值,语句重点是赋值。如果赋值超出了当前函数的作用域,就容易产生副作用,这往往不利于追踪程序状态,不是太好的编程模式。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/254.html