[关闭]
@Wangww0925 2019-08-07T07:54:39.000000Z 字数 2192 阅读 204

ECMAScript的核心语言 (二)表达式、运算符

js-笔记


表达式

程序中的短语

复杂表达式是由 短的表达式 通过运算符进行连接而成


运算符

操作数分: 一元运算符 二元运算符 三元运算符


功能分:

1、 算术运算符:

  1. + - * / % 取余 + 正号 - 负号 ++ 自增1 -- 自减1

特殊:+ 既是数学运算,又是字符串连接符

字符串连接的优先级 > 数学运算,如:

  1. console.log('100' + 2); // 返回 字符串1002

通过转换解决:

  1. console.log(Number('100') + 2); // 返回 102

++ 的注意事项:

  1. 加完以后再输出:
  2. var index = 10;
  3. index++;
  4. console.log(index); // 返回 11
  5. 先输出10在++:
  6. var num = 10;
  7. console.log(num++); // 返回 10
  8. 先++在输出:
  9. var n = 10;
  10. console.log(++n); // 返回 11
  11. ++ 小实例:
  12. var m = 5;
  13. var result = m++ + ++m; // 5|6 + 7|7 参与运算的 | m 的值
  14. console.log(result,m); // 返回 12 7

2、 关系运算符: true | false

  1. > 大于
  2. >= 大于等于
  3. < 小于
  4. <= 小于等于
  5. == 等于
  6. != 不等于
  7. === 恒等于
  8. !== 不恒等于
  9. + 字符串连接符,返回字符串
  10. console.log('100' != 100); // 返回 false
  11. console.log('100' === 100); // 返回 false

3、 逻辑运算符:

  1. 1. && 两端都为真才为真*
  2. console.log(true && true && false); // 返回 false
  3. 2. || 两端有一端为真 即为真
  4. console.log(false || false); // 返回 false
  5. 3. ! 非(取反) 真变假,假变真
  6. console.log(!0); // 返回 true
  7. 4. 特殊:
  8. console.log(true && 100 > 90); // 返回 true
  9. console.log(true && 'abc'); // 返回 abc
  10. console.log(true && false); // 返回 false
  11. console.log(true || false); // 返回 true
  12. console.log(true || 5); // 短路,返回 true
  13. console.log(5 || true); // 短路,返回 5
  14. console.log(false | 5); // 短路,返回 5

4、 位运算:

  1. & 按位与 两端都为1,才为1,否则为0
  2. console.log(10 & 8); // 返回 8
  3. 1010 10
  4. 1000 8
  5. ---------------------
  6. 1000 8
  7. 实例: 奇数偶数判断
  8. function assert(n) {
  9. n & 1 ? console.log("n是奇数") : console.log("n是偶数");
  10. };
  11. assert(22);
  12. | 按位或
  13. ^ 按位 异或(两个数不一样才是true)
  14. ~ 位非 (需要补码) 取反-1
  15. << 左移
  16. >> 右移

5、 赋值运算符:

  1. = 普通赋值: var index = 100;
  2. += 先加10,再重新赋值
  3. index = index + 10;
  4. index += 10; 类似于index = index + 10;

6、 其他运算符:

1. ? 三元运算符: 与if(){}else{}类似

  1. if(){}else{}用法:
  2. var index = 100;
  3. if(index > 60){
  4. console.log('大于');
  5. }else{
  6. console.log('小于');
  7. }
  8. 三元运算法: boolean ? true的时候运行 : false的时候运行
  9. index>60 ? console.log('大于') : console.log('小于');

2. , 运算符:

  1. var a,b,c;

3.typeof 返回表示数据类型的一个字符串

4.delete 删除:

删除变量:

  1. var num = 100;
  2. delete num; // 无效; 报错
  3. console.log(num); // 100
  4. 注意:
  5. 1. 不能删除变量和函数,删除无效
  6. 2. 在严格模式下,删除变量和函数会报错Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.

删除对象:

  1. var obj = {
  2. "type":"a",
  3. "number":123
  4. };
  5. delete obj.number;
  6. console.log(obj); // {type: "a"}
  7. delete obj; // 无效 ; 报错
  8. console.log(obj); // {type: "a"}

删除数组:

  1. var arr = [1,2,3,4];
  2. delete arr[2]; // 注意:删除数组中的某个值,应将数组重新遍历来去除无效
  3. console.log(arr); // [1, 2, empty, 4]

5.void 作用于超链接,将链接变成死链接;不常用

  1. <a href="javascript:void(0)">谷歌一下</a>

运算符的优先级:

运算符优先级,如图:

2-运算符优先级.png-289.2kB

改变优先级:使用 ()

按照正常的思维写是没问题的;需要改变优先级的情况 可以使用()

  1. var s = (100+100) * (20-5);

作者 wendy
2019 年 5月 23日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注