JavaScript系列复习(一)
前言
2022年初始,作为前端开发的菜鸟,项目也慢慢从紧张的氛围中步向尾声,终于又有时间来撸一撸JavaScript了,它是前端开发的重中之重,没有它或者对它不熟悉,就不存在进阶或者进步、亦或者非常困难;因为随着步入更深入的项目层次,需要掌握扎实的基础,所以,时常回顾一下是非常有必要的!希望大家一样,新年伊始,愿不负初心,继续努力!一、JavaScript中重要的几个概念
本章节我们简单回顾一下JavaScript中几个简单而且重要的几个概念,标识符、关键字、保留字、区分大小写、字面量等,他们都是JavaScript基本的组成元素。
1、标识符
平常我们说的标识符也就是名字,比如:变量名、函数名、类名、参数名、属性名等。在JavaScript中,合法的标识符具有一定潜在、强制性规则,如果你不遵循它这个规则,那你的代码就会显得很乱,还有可能报错频率大大增加,极大的影响了代码的可读性!
我们看看所谓的强制性规则都有哪些:
- (1)、不管是什么名字,每个名字的第一个字符必须是字母、下划线( _ )或者美元符号(\(),例如:const、_const、\)var等。
- (2)、除了第一个字符外,其他位置可以使用 Unicode 字符。一般建议仅使用 ASCII 编码的字母,不建议使用双字节的字符(比如中文汉字)。
- (3)、名字的定义或者命名,都不能与JavaScript的关键字、保留字重名。
- (4)、可以使用 Unicode 转义序列。例如,字符 a 可以使用“\u0061”表示。
2、关键字
关键字(Keyword)就是 JavaScript 语言内部使用的一组名字(或称为命令)。这些名字具有特定的用途,用户不能自定义同名的标识符,具体说明如下表所示:
关键字 | 常用说明 | 关键字 | 常用说明 | 关键字 | 常用说明 | ||
---|---|---|---|---|---|---|---|
switch | 用作条件判断 | while | 条件循环 | delete | 删除对象属性 | ||
case | 条件判断的执行内容 | do | 常和while一起做条件循环 | continue | |||
default | 条件判断默认执行 | function | 函数定义 | debugge | |||
break | 停止执行(判断、函数、代码段) | return | 跳出(判断、函数)继续执行 | finally | 与try...catch...throw操作异常 | ||
try | 捕获异常中正常执行 | var | 变量定义、参数定义 | instanceof | 返回布尔值 | ||
catch | 捕获异常中异常执行 | void | typeof | ||||
if | 条件判断“是”执行 | this | |||||
else | 条件判断“否”执行 | new | |||||
for | 条件循环、遍历 | throw | 与try...catch...finally操作异常 | ||||
in | 遍历 | with | 引用一个对象,只能访问与修改属性,不能增加属性与方法 |
3、保留字
保留字就是 JavaScript 语言内部预备使用的一组名字(或称为命令)。保留字是为以后js的扩展用的,不能作为普通变量名。具体如下表所示:
abstract | const | final | int | private | super |
boolean | double | float | interface | protected | synchronized |
byte | enum | goto | long | public | throws |
char | export | implements | native | short | transient |
class | extends | import | package | static | volatile |
在ES5中开始规定严格模式(‘use strict’)和非严格模式,两种模式的规则规定有一定差异,比较灵活。
- 严格模式下:ES5的处理很谨慎,严格限制 implements、interface、let、package、private、protected、public、static、yield、eval(非保留字)、arguments(非保留字)的使用。
- 非严格模式下:仅规定 class、const、enums、export、extends、import、super 为保留字,其他 ECMAScript 3 保留字可以自由使用。
除此之外,JavaScript 还预定义了很多全局变量和函数,我们在定义名字时也应该尽量的避免使用它们,以免重复定义命名导致程序报错!常见的全局变量和函数如下表所示:
arguments | decodeURLComponent | EvalError | Math | parseInt | SyntaxError |
Array | encodeURL | Function | Infinity | NaN | RangeError |
Boolean | encodeURLComponent | isFinite | Number | ReferenceError | TypeError |
Date | Error | isNaN | Object | RegExp | undefined |
decodeURL | eval | JSON | parseFloat | String | URLError |
4、区分大小写
在JavaScript中是严格区分大小写的,这个要注意一下。比如在一下大型项目或者项目参与成员比较多的情况下,就容易出现命名混乱的问题,前期如果没有命名规范这种意识,后期项目维护就会增加太大的难度。项目开发过程中制定相应的代码规范是非常有必要的,随着社区不断发展,协定了命名包含以下几种规范:
- 下划线命名:user_name
- 中划线命名:user-name
- 小驼峰命名:userName
- 大驼峰命名:UserName
在比较复杂的逻辑处理中也应该保持写注释的习惯,虽然我们不推荐一段代码承担着复杂的处理逻辑,但是写注释绝对是没有错的,它会大大增加代码“可阅读性”,这对代码维护是非常有用的。
5、直接量
字面量(Literal)也叫直接量,就是具体的值,即能够直接参与运算或显示的值,如字符串、数值、布尔值、正则表达式、对象直接量、数组直接量、函数直接量等。
下面示例分别定义不同类型的直接量:字符串、数值、布尔值、正则表达式、特殊值、对象、数组和函数。
//空字符串直接量
1 //数值直接量
true //布尔值直接量
/a/g //正则表达式直接量
null //特殊值直接量
{} //空对象直接量
[] //空数组直接量
function(){} //空函数直接量,也就是函数表达式
二、JavaScript数据类型
数据类型指的是可以在程序中存储和操作的值的类型,每种编程语言都有其支持的数据类型,不同的数据类型用来存储不同的数据,例如文本、数值、图像等。JavaScript 中的数据类型可以分为两种类型:
- 基本数据类型(值类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol;
- 引用数据类型:对象(Object)、数组(Array)、函数(Function)。
提示:JavaScript数据基本类型总结在上篇聊聊原生js的那些事[JavaScript数据类型]中有说明,这里不再重复赘述了。
三、JavaScript运算符
运算符是用来告诉 JavaScript 引擎执行某种操作的符号,例如加号(+)表示执行加法运算,减号(-)表示执行减法运算等,本节我们就来复习一下 JavaScript 中不同的运算符。
1、算术运算符
算数运算符用来执行常见的数学运算,例如加法、减法、乘法、除法等。
运算符 | 说明 | 示例 |
---|---|---|
+ | 加法运算符 | x + y 表示计算 x 加 y 的和 |
- | 减法运算符 | x - y 表示计算 x 减 y 的差 |
* | 乘法运算符 | x * y 表示计算 x 乘 y 的积 |
/ | 除法运算符 | x / y 表示计算 x 除以 y 的商 |
% | 取余运算符 | x % y 表示计算 x 除以 y 的余数 |
示例代码如下:
var x = 7,
y = 2;
console.log("x + y =", x + y); // x + y = 9
console.log("x - y =", x - y); // x - y = 5
console.log("x * y =", x * y); // x * y = 14
console.log("x / y =", x / y); // x / y = 3.5
console.log("x % y =", x % y); // x % y = 1
2、赋值运算符
运算符 | 说明 | 示例 |
---|---|---|
= | 最简单的赋值运算符,将运算符右侧的值赋值给运算符左侧的变量 | x = 1 表示将变量 x 赋值为 1 |
+= | 先进行加法运算,再将结果赋值给运算符左侧的变量 | x += y 等同于 x = x + y |
-= | 先进行减法运算,再将结果赋值给运算符左侧的变量 | x -= y 等同于 x = x - y |
*= | 先进行乘法运算,再将结果赋值给运算符左侧的变量 | x *= y 等同于 x = x * y |
/= | 先进除乘法运算,再将结果赋值给运算符左侧的变量 | x /= y 等同于 x = x / y |
%= | 先进行取余运算,再将结果赋值给运算符左侧的变量 | x %= y 等同于 x = x % y |
3、字符串运算符
JavaScript 中的+和+=运算符除了可以进行数学运算外,还可以用来拼接字符串,其中:
- +运算符表示将运算符左右两侧的字符串拼接到一起;
- +=运算符表示先将字符串进行拼接,然后再将结果赋值给运算符左侧的变量
var x = "Hello ";
var y = "World!";
var z = x + y;
console.log(z); // Hello World!
x += y;
console.log(x); // Hello World!
4、自增、自减运算符
自增、自减运算符用来对变量的值进行自增(+1)、自减(-1)操作。
运算符 | 名称 | 说明 |
---|---|---|
++x | 自增运算符 | 将 x 加 1,然后返回 x 的值 |
x++ | 自增运算符 | 返回 x 的值,然后再将 x 加 1 |
--x | 自减运算符 | 将 x 减 1,然后返回 x 的值 |
x-- | 自减运算符 | 返回 x 的值,然后将 x 减 1 |
// ++x
var x = 5;
console.log(++x); // 6
console.log(x); // 6
// x++
x = 5;
console.log(x++); // 5
console.log(x); // 6
// --x
x = 5;
console.log(--x); // 4
console.log(x); // 4
x = 5;
console.log(x--); // 5
console.log(x); // 4
5、比较运算符
比较运算符用来比较运算符左右两侧的表达式,比较运算符的运算结果是一个布尔值,结果只有两种,不是 true 就是 false。
运算符 | 名称 | 示例说明 |
---|---|---|
== | 等于 | x == y 表示如果 x 等于 y,则为真 |
=== | 全等 | x === y 表示如果 x 等于 y,并且 x 和 y 的类型也相同,则为真 |
!= | 不相等 | x != y 表示如果 x 不等于 y,则为真 |
!== | 不全等 | x !== y 表示如果 x 不等于 y,或者 x 和 y 的类型不同,则为真 |
< | 小于 | x < y 表示如果 x 小于 y,则为真 |
> | 大于 | x > y 表示如果 x 大于 y,则为真 |
>= | 大于或等于 | x >= y 表示如果 x 大于或等于 y,则为真 |
<= | 小于或等于 | x <= y 表示如果 x 小于或等于 y,则为真 |
var x=10,y=20,z="20";
console.log(y==z); // true
console.log(y===z); // false
console.log(y!=z); // false
console.log(y!==z); // true
console.log(x<y); // true
console.log(y>x); // true
console.log(x<z); // true
console.log(y>=x); // true
console.log(x<=z); // true
6、逻辑运算符
逻辑运算符通常用来组合多个表达式,逻辑运算符的运算结果是一个布尔值,只能有两种结果,不是 true 就是 false。
运算符 | 名称 | 示例 |
---|---|---|
&& | 逻辑与 | x && y 表示如果 x 和 y 都为真,则为真 |
|| | 逻辑或 | x || y 表示如果 x 或 y 有一个为真,则为真 |
! | 逻辑非 | !x 表示如果 x 不为真,则为真 |
var year = 2022;
// 闰年可以被 400 整除,但可以被 4 整除的同时不能被 100 整除
if((year%4 == 0 && year%100 != 0)||(year%400 == 0)){
console.log(year + " 年是闰年。");
} else{
console.log(year + " 年是平年。");
}
7、三元运算符
三元运算符(也被称为条件运算符),由一个问号和一个冒号组成,语法格式:条件表达式 ? 表达式1 : 表达式2 。语法格式说明:如果“条件表达式”的结果为真(true),则执行“表达式1”中的代码,否则就执行“表达式2”中的代码。
var x=10,y=20;
x<y?console.log('x小于y'):console.log('x大于y'); // x小于y
提示:本文摘抄自JavaScript基础教程