⭐ 作者简介:码上言
⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程
⭐专栏内容:个人博客系统
⭐我的文档网站:http://xyhwh-nav.cn/
⭐微信公众号:码上言
文章目录
ECMAScript介绍
ECMAScript
的语法很大程度上借鉴了C语言和其他类C语言,如Java和Perl。
ECMAScript中一切都区分大小写。无论是变量、函数名还是操作符,都区分大小写。
标识符:变量、函数、属性或函数参数的名称。第一个字符必须是一个字母、下划线(_)或美元符号($);剩下的其他字符可以是字母、下划线、美元符号或数字。
按照惯例,ECMAScript标识符使用驼峰大小写形式。
ECMAScript采用C语言风格的注释,包括单行注释和块注释。
// 单行注释
/* 这是多行
注释 */
ECMAScript 5增加了严格模式(strict mode)的概念。
"use strict";
ECMAScript中的语句以分号结尾。省略分号意味着由解析器确定语句在哪里结尾。
let sum = a + b // 没有分号也有效,但不推荐
let diff = a - b; // 加分号有效,推荐
ECMA-262第6版规定的所有关键字如下(按照规定,保留的关键字不能用作标识符或属性名。):
break do in typeof
case else instanceof var
catch export new void
class extends return while
const finally super with
continue for switch yield
debugger function this
default if throw
delete import try
以下是ECMA-262第6版为将来保留的所有词汇。这些词汇不能用作标识符,但现在还可以用作对象的属性名。一般来说,最好还是不要使用关键字和保留字作为标识符和属性名,以确保兼容过去和未来的ECMAScript版本。
始终保留:
enum
严格模式下保留:
implements package public
interface protected static
let private
模块代码中保留:
await
ECMAScript变量是松散类型的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一个用于保存任意值的命名占位符。有3个关键字可以声明变量:var、const和let。其中,var在ECMAScript的所有版本中都可以使用,而const和let只能在ECMAScript 6及更晚的版本中使用。
var关键字不初始化的情况下,变量会保存一个特殊值undefined。
var message = "hi";
message = 100; // 合法,但不推荐
在严格模式下,不能定义名为eval
和arguments
的变量,否则会导致语法错误。
let声明:let
跟var
的作用差不多,但有着非常重要的区别。最明显的区别是,let
声明的范围是块作用域,而var
声明的范围是函数作用域。let
也不允许同一个块作用域中出现冗余声明。对声明冗余报错不会因混用let
和var
而受影响。
var name;
let name; // SyntaxError
let age;
var age; // SyntaxError
与var
关键字不同,使用let
在全局作用域中声明的变量不会成为window
对象的属性(var
声明的变量则会)
const
的行为与let
基本相同,唯一一个重要的区别是用它声明变量时必须同时初始化变量,且尝试修改const
声明的变量会导致运行时错误。如果const
变量引用的是一个对象,那么修改这个对象内部的属性并不违反const
的限制。
限制自己只使用let
和const
有助于提升代码质量,因为变量有了明确的作用域、声明位置,以及不变的值。
使用const声明可以让浏览器运行时强制保持变量不变,也可以让静态代码分析工具提前发现不合法的赋值操作。因此,很多开发者认为应该优先使用const来声明变量,只在提前知道未来会有修改时,再使用let。这样可以让开发者更有信心地推断某些变量的值永远不会变,同时也能迅速发现因意外赋值导致的非预期行为。