js · 8 5 月, 2022 0

重学JS之表达式

JS表达式

在JS中有多中表达式的使用方式, 具体表达式有一下几种:

初始化表达式

person = { // 对象的定义以花括号开始
   firstName: "xiang", // 定义了属性firstName, 值为xiang
   lastName: "lujun"   // 定义类属性lastName, 值为lujun
};
​
primes=[2,3,5,7,9]; // 定义一个数组

在上面的使用中,我们通过[]的方式定义了数组和通过{}的方式定义了对象属性名和属性值之间的对应关系, 这种语法实现就叫做初始化表达式.

运算表达式

在js中有很多中表达式的使用方式, 具体的使用方式如下:

3 + 2 // => 5 加法
3 - 2 // -> 1 减法
3 * 2   // -> 6 乘法
6 / 2   // -> 3 除法
points[0].x + points[1].x // 较复杂的运算表达式
"3" + "2" // -> 32 字符串拼接
​
// 定义整数
var c = 0;
c++; // -> 自增1, 相当于 c = c + 1;
c--; // 自减1,相当于c = c -1 ;
c += 2; // 自增2, 相当于 c = c + 2;
c -= 2; // 自减2,相当于c = c - 2;
c *= 2; // 乘以2,相当于c = c * 2;
c /= 2; // 除以2,相当于 c = c / 2;
c; // -> 0; 输出结果

逻辑运算符

在js中包含了很多逻辑运算符, 主要包含了大于,小于,等于等。其返回的结果为布尔值: true或者false

var a = 1, b = 0;
a == b; // false, 是否相等
a <= b; // false; 判断a是否小于等于b
a >= b; // true; 判断 a是否大于等于b;
a != b; // true; 判断是否a不等于b
a > b; // true; 判断是否a大于b
a < b; // false; 判断是否a小于b
​
"1" == "2" // false; 判断两个字符串是否相等
"ac" > "ab"; // true; 因为ac在字母的索引位大于ab
false == (a > b); // false; 以为a>b为true, 则false == true不成立
​
// 逻辑运算符
(a == 1) && (b == 0); // true; &&两边的值,必须同时为true时, 结果才为true; 否则值为false
(a == 1) || (b == 2); // true; || 表示两边的比较,有一个为true,则结果为true; 否则结果为false
!(a != b); //false; !表示对结果进行取反, true变为false; false变为true;

控制表达式

在js中有常用的控制表达式的使用, 具体实例如下:

if 表达式

if表达式指代的是,当if后端的条件运行结果为true时,则执行对应的代码片段, 具体实例如下:

function f(x) {
   if (x >= 0) { // if条件语句
       console.log("正数") // 如果if条件结果为true, 则执行该段代码
  } else { // 当if条件结果为false时,则执行这段代码
       console.log("负数")
  }
}
​
f(1); // 正数
f(-1); // 负数

 

while 表达式

while表达式则是一个循环表达式, 可以对一个条件运算多次, 再输出其结果. 具体代码如下:

function fab(n) { // 实现一个斐波拉契数列
   if (n <= 2) {
       return 1;
  }
   var pp = 1, p = 1, c = 0, i = 2;
   while(i < n) { // 循环开始, 判断是否i < n
       c = pp + p; // 计算前两个元素的值, 并赋值到c
       pp = p; // 保存前两位的值
       p = c; // 保存前两位的值
       i++; // 向后推进1位
  }
   return c; // 返回结算结果
}

 

for表达式

forwhile表达式有比较多的相似的地方,也是用于循环执行的代码, 具体代码如下:

function fab(n) { // 实现一个斐波拉契数列
   if (n <= 2) {
       return 1;
  }
   var pp = 1, p = 1, c = 0;
   for(i = 2; i < n; i++) { // 循环开始, 判断是否i < n; 当单次for循环执行完毕后, 执行i++,相当于i = i+ 1;
       c = pp + p; // 计算前两个元素的值, 并赋值到c
       pp = p; // 保存前两位的值
       p = c; // 保存前两位的值
  }
   return c; // 返回结算结果
}