首页 > 编程语言 >javascript基础学习系列一:标识符

javascript基础学习系列一:标识符

时间:2024-01-07 20:32:17浏览次数:45  
标签:逻辑 绑定 系列 变量 代码 javascript loaded 语法分析 标识符

一般来说,语言中的标识符可以分为两类,一类用于命名语法(以及类型),一类用 于命名值(的存储位置)。前者被称为“语法关键字”,后者则被称为“变量”和“常量”。

由此引入了一个概念:绑定。从标识符的角度来说,绑定分为语法关键字与语法(语义)逻辑的绑定,以及变量与它所存储值的位置的绑定。语法关键字对逻辑的绑定的结 果,是作用域的限定;变量对位置的绑定的结果,则是变量生存周期的限定。

1. 标识符:

程序语言中“声明”的意义(这里强调是意义,而非定义):所谓声明, 即是约定变量的生存周期和逻辑的作用域。由于这里的“声明”已经涵盖了逻辑与数据 (这相当于“程序”的全部),因此整个编程的过程,其实被解释成了“说明逻辑和数据” 的过程。

  • 纯粹陈述“值”的过程,被称为变量和类型声明。
  • 纯粹陈述“逻辑”的过程,被称为语句(含流程控制子句)。
  • 陈述“值与(算法的)逻辑”的关系的过程,被称为表达式。

2. 识别语法错误:

JavaScript 引擎会在代码装入时先进行语法分析,如果语法分析通不过, 整个脚本代码块都不执行;当语法分析通过时,才会执行这段脚本代码。若在执行过程 中出错,那么在同一代码上下文中、出错点之后的代码将不再执行。

要在不同的脚本引擎中简单地区 别两种错误,较为通行的方法是在代码片断的最前面加上一行输出,例如,使用 alert() 来显示一个信息1。脚本引擎的出错提示在该行之前,则是语法分析期错误。例如:

var loaded = 'alert("loaded.");';

// 声明函数的语法错误
var funcCode = 'funcion func(){};';
eval(loaded + funcCode);

如果在该行之后,则是执行期错误。例如:

var loaded = 'alert("loaded.");';
// 执行时发现未定义 value 变量,触发运行期错误
var valueCode = 'value++';
eval(loaded + valueCode);

这两种错误提示,而在特定脚本引擎 中,一段代码是执行异常还是语法分析错误,是需要通过上述的方法来区分的。但如果 有该引擎下的调试器或脚本宿主环境,允许加载用户的错误处理代码(例如,浏览器中 可以通过 window.onerror 响应错误处理),也还是有其他方法的。

标签:逻辑,绑定,系列,变量,代码,javascript,loaded,语法分析,标识符
From: https://blog.51cto.com/u_16255561/9134730

相关文章