💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 基本概念 * * * * * ### 3.1 语法 #### 3.1.1 ECMAScript中的一切(变量、函数名和操作符)都区分大小写。 #### 3.1.2 标识符 标识符: 指变量、函数、属性的名字,或者函数的参数。 **命名规则:** * 第一个字符必须是一个字母、下划线(`_`)或一个美分符号(`$`) * 其他字符可以是字母、下划线、美元符号或数字。 按照惯例,ECMAScript标识符采用驼峰大小书写格式,及第一个字母小写,其他每个单词首字母大写,如`myWord` #### 3.1.3 注释 源码中被JavaScript引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript提供两种注释:一种是单行注释,用//起头;另一种是多行注释,放在/* 和 */之间。 ~~~ // 这是单行注释 /* /* 这是 * 另一种 多行 * 多行 注释 * 注释 */ */ ~~~ #### 3.1.4 语句 ECMAScript中的语句以一个**分号结尾**;如果省略分号,则由解析器确定语句的结尾。 JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。 **语句(statement)是为了完成某种任务而进行的操作**,比如下面就是一行赋值语句: ~~~ var a = 1 + 3; ~~~ * * * * * ### 3.2 关键字和保留字 ECMA-262描述了一组具有**特定用途**的**关键字**,这些关键字可用于控制语句的开始或结束,或者用于执行特定操作等,**不能用作标识符**。 ~~~ break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try ~~~ ECMA-262还描述了一组不能用作标识符的**保留字**: ~~~ abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public ~~~ 如果使用关键字作标识符,会导致“Identifier Expected”错误。 * * * * * ### 3.3变量 变量是对**“值”的引用**,使用变量等同于引用一个值。每一个变量都有一个变量名。 ECMAScript的变量是**松散类型**的,所谓松散类型就是可以用来保存任何类型的数据。定义变量时要使用var操作符,后跟变量名。 ~~~ var message ~~~ 注意:使用var操作符定义的变量将成为定义该变量的**作用域中的局部变量**,也就是说,如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁。 ~~~ function test(){ var message = 'm'; //局部变量 } test(); console.log(message); // 报错 ~~~ 如果省略了var操作符,就相当于定义了一个**全局变量**,在函数外部的任何地方都可以访问到。 ~~~ function test(){ message = 'm'; //局部变量 } test(); console.log(message); // "m" ~~~ 不推荐省略var操作符。 一条语句定义多个变量,变量之间用逗号(`,`)分隔开 ~~~ var message = "hi", name = "Tom", age = 10; ~~~