Javascript中的语法、关键字及保留字

196 1 年前
任何语言的核心都必然会描述这门语言最基本的工作原理。而描述的内容通常都要涉及这门语言的语法、操作符、数据类型、内置功能等用于构建复杂解决方案的基本概念。

ECMAScript借鉴了C及其他C语言(如 Java 和 Perl)的语法,因此,熟悉这些语言的开发人员在接受 ECMAScript 更加宽松的语法时,一定会有一种轻松自在的感觉。

区分大小号

ECMAScript 中的一切(变量、函数名和操作符)都区分大小写。这也就意味着,变量名 test 和变量名 Test 分别表示两个不同的变量。

标识符

谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符不是随便命名的,必须满足以下下规则的一个或多个字符:

  • 第一个字符必须是一个字母、下划线(_)或一个美元符号($);
  • 其他字符可以是字母、下划线、美元符号或数字。

标识符中的字母也可以包含扩展的 ASCIIUnicode 字母字符(如 À 和 Æ),当然中文也可以,但是不推荐这样做。

通常标记符我们采用驼峰大小写的格式,第一个字母小写,剩下的每个单词首字母大写,在定义的时候首字母大写。其实没有强制如此,只是为了保持与ECMAScript本身的写法一致更利于阅读和维护。

注释

ECMAScript 使用 C 风格的注释,包括单行注释块级注释

单行注释为两个斜杠//

// 这就是单行注释

块级注释就是一下可以注释多行,以一个斜杠加上星号(*)开始/*,再以一个星号加上斜杠结束*/

/*
    这是一行
    这是一行
    这是一行
*/

语句

ECMAScript 中的语句以一个分号结尾(;);如果省略分号,则由解析器(浏览器)确定语句的结尾,

var sum = a + b // 即使没有分号也是有效的语句——不推荐
var diff = a - b; // 有效的语句——推荐

在很多情况省略了分号,解析器任然可以正确解析,但为了养成的编程习惯与风格建议在该有分号结束的地方不要省略。

可以作用{}把多行代码组合到一个代码块中

var test = true;
if (test){
 console.log('11111')
}

上面的代码如下写也是可以有效的,但不推荐如此

var test = true;
if(test) console.log('11111')

赋值和等号

等号 (=) 在 JavaScript 语句中用于为变量赋值:它是赋值运算符。 = 运算符的左操作数始包括:变量、数组元素、对象属性。

var anInteger = 3;

表达式

JavaScript 表达式值可以是任何有效的 JavaScript 类型,即数字、字符串、对象等。最简单的表达式是文本。以下是 JavaScript 文本表达式的一些示例。

3.9                       // numeric literal
"Hello!"                  // string literal
false                     // boolean literal
null                      // literal null value
{x:1, y:2}                // Object literal
[1,2,3]                   // Array literal
function(x){return x*x;}  // function literal

更复杂的表达式可包含变量、函数调用和其他表达式。 可以使用运算符组合表达式来创建复杂的表达式。运算符的示例包括:+(加法)、-(减法)、*(乘法)和 /(除法)。

//以下整行为一条语句,=赋值运算右侧为一个表达式;
var anExpression = 3 * (4 / 5) + 6;
var aSecondExpression = Math.PI * radius * radius;
var aThirdExpression = aSecondExpression + "%" + anExpression;
var aFourthExpression = "(" + aSecondExpression + ") % (" + anExpression + ")";

关键字和保留字

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

保留字

尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。

关键字 关键字 关键字 关键字
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 implements
package public interface private
static let protected yield

在非严格模式下保留字要求有所缩减,但在平时开发中推荐按严格模式执行

关键字 关键字 关键字 关键字
class enum extends super
const export import

关键字和保留字虽然仍然不能作为标识符使用,但现在可以用作对象的属性名。一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便与将来的 ECMAScript 版本兼容。

分类栏目
© 2018邮箱:11407215#qq.comGitHub沪ICP备12039518号-6