第 5 章 JavaScript基础 JavaScript是一种被广泛用于Web开发的编程语言,常用来为网页增添交互 性和动态性,为用户提供更流畅、绚丽的浏览效果。JavaScript具有简单易学、高 度可扩展性以及跨平台兼容性等特点,现已成为最流行的编程语言之一。除在 Web开发中使用外,也被广泛用于构建桌面应用程序、构建移动应用程序、游戏开 发、机器学习和人工智能等领域。 ..5.1 JavaScript简介 JavaScript是一种高级的、多范式、解释型的编程语言,支持面向对象编程、命 令式编程以及函数式编程。 1.基本语法 5.1 1. 区分大小写 JavaScript对大小写敏感,即区分大小写。例如,变量名Car和变量名car是 两个不同的变量。 2. 标识符 JavaScript的标识符包括变量名、函数名、参数名和属性名等,也包括某些循 环语句中跳转位置的标记,在JavaScript中,所有可自主命名的名称都可以称为标 识符。 合法的标识符应该满足以下规则。 (1)标识符可以是一个或多个字符。 (2)第一个字符必须是字母、下画线“_” 或符号“$”,其后字符可以是字母、数 字、下画线或符号“$”。 (3)自定义标识符不能与JavaScript关键字、保留字重名。 (4)可使用Unicode转义序列。例如,字符a可使用“\u0061”表示,因此,下 列标识符都是合法的:a、_a、$a_ab_23ab、a23 、\u0061 。 3. 关键字 JavaScript的关键字不可以用作变量、标签或者函数名,主要关键字如表5-1 第5章 JavaScript基础1 27 所示。 表5-1 关键字 break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with 4.保留字 ECMA-262规定保留字是JavaScript语言内部预备使用的一组标识符,建议不要使用, 主要保留字如表5-2所示。 表5-2 保留字 abstract boolean byte char class const double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile 5.常量 常量表示固定不变的数据,与变量一样,均是用于存储数据的容器,只不过常量的值在 程序的运行过程中不发生改变。在JavaScript语言下一代标准ES6(ECMAScript6.0,已在 2015年6月正式发布)之前,并没有声明常量的方法,在ES6中新增加了const来定义常 量,例如: const a = 1 //当常量a 被创建时,再次给a 赋值时,a 仍为1 console.log(a) ; a = 10; console.log(a) //报错 常量分为以下四类。 (1)整型常量,也就是整数,包括正整数、负整数和0。 (2)实型常量,也称为浮点常量,即日常生活中的小数。 (3)字符串常量,指使用单引号或者双引号括起来的内容。 (4)布尔常量,即真或假,其取值为true或者false。 1 28 Web前端开发基础———HTML+CSS+JavaScript+前端框架 6.变量 变量表示可以变化的数据,是用于存储数据的容器,在程序的运行过程中,可发生变化 或者被再次赋值。 JavaScript中定义变量有两种方式:var与let,其中,let是ES6新增的语法。 (1)var定义变量名称。 var a; //定义一个变量 a = 1; //往变量中存储数据 console.log(a); //从变量中取出存储的数据 (2)let定义变量名称。 let num; //定义一个变量 num = 2; //给变量初始化 console.log(num); //取出存储的数据 两种定义方式的区别如下: (1)var是函数作用域,let是块级作用域。var声明的变量,只有函数能限制其作用域, 而任何大括号都可以限制let声明变量的作用域。 (2)var存在变量提升,let不存在变量提升。var可以先使用再声明,在变量没有被声 明时,其值为undefined;但在使用let关键字声明变量时,必须先声明再使用,否则会报错。 (3)var变量可以重复声明,let变量不可以重复声明。多人团队开发项目时,使用let 声明变量,可以避免变量名的覆盖。 (4)var声明的全局变量,会成为全局对象window的属性;let声明的变量不会。 根据变量作用域的不同,可分为块级变量、局部/函数变量和全局变量。 块级变量是在块中声明的变量,只在块中有效。 局部变量声明在函数之中,其作用域是局部的,只能在函数内部访问,因此能够在不同 函数中使用同名变量。函数执行时,会创建局部变量,函数执行完毕后,会销毁局部变量, 例如: //此处的代码不能使用carName 变量 function myFunction() { var carName = "porsche"; //此处的代码能使用carName 变量 } 全局变量声明在函数之外,其作用域是全局的,即网页的所有脚本和函数都能够访问 它,例如: var carName = " porsche"; //此处的代码能够使用carName 变量 function myFunction() { //此处的代码也能够使用carName 变量 } 第5章 JavaScript基础1 29 注意:如果为尚未声明的变量赋值,此变量会自动成为全局变量。 7.注释 单行注释:以“//”开头,任何位于“//”与行末之间的文本都会被JavaScript忽略。 多行注释:以“/*”开头,以“*/”结尾,任何位于“/*”和“*/”之间的文本都会被 JavaScript忽略。 5.1.2 引入方式 JavaScript的引入方式有三种,分别为行内式、内联式以及外链式。 1.行内式 行内式是指将JavaScript代码作为HTML标签的属性值来使用,例如: