第2章:ArkTS基本语法
运算符
概述
ArkTS继承了TypeScript的运算符体系,提供了丰富的运算符用于执行各种计算和逻辑操作。运算符是构建表达式的基础元素,掌握运算符的使用是编写ArkTS程序的基本功。
算术运算符
let a: number = 10;
let b: number = 3;
console.log(a + b); // 13 (加法)
console.log(a - b); // 7 (减法)
console.log(a * b); // 30 (乘法)
console.log(a / b); // 3.333... (除法)
console.log(a % b); // 1 (取模)
console.log(a ** b); // 1000 (指数)
赋值运算符
let x = 5;
x += 3; // 等同于 x = x + 3
x -= 2; // 等同于 x = x - 2
x *= 4; // 等同于 x = x * 4
x /= 2; // 等同于 x = x / 2
比较运算符
console.log(5 == '5'); // true (值相等)
console.log(5 === '5'); // false (值和类型都相等)
console.log(5 != '5'); // false
console.log(5 !== '5'); // true
console.log(5 > 3); // true
console.log(5 <= 5); // true
逻辑运算符
let isTrue = true;
let isFalse = false;
console.log(isTrue && isFalse); // false (逻辑与)
console.log(isTrue || isFalse); // true (逻辑或)
console.log(!isTrue); // false (逻辑非)
位运算符
let num1 = 5; // 0101
let num2 = 3; // 0011
console.log(num1 & num2); // 1 (0001) 按位与
console.log(num1 | num2); // 7 (0111) 按位或
console.log(num1 ^ num2); // 6 (0110) 按位异或
console.log(~num1); // -6 (补码表示) 按位非
console.log(num1 << 1); // 10 (1010) 左移
console.log(num1 >> 1); // 2 (0010) 右移
条件(三元)运算符
let age = 18;
let status = age >= 18 ? '成年' : '未成年';
console.log(status); // 输出"成年"
类型运算符
let str = "hello";
console.log(typeof str); // "string"
class Person {}
let person = new Person();
console.log(person instanceof Person); // true
运算符优先级
运算符的优先级决定了表达式中运算的执行顺序。以下是从高到低的部分优先级:
- 括号
() - 一元运算符
++,--,!,~,typeof - 乘除
*,/,% - 加减
+,- - 位移
<<,>>,>>> - 关系
<,<=,>,>= - 相等
==,!=,===,!== - 位与
& - 位异或
^ - 位或
| - 逻辑与
&& - 逻辑或
|| - 条件
?: - 赋值
=,+=,-=等
注意事项
- 注意区分
==和===的区别 - 避免在复杂表达式中依赖运算符优先级,适当使用括号增加可读性
- 注意运算符的副作用(如自增/自减运算符)
- 对于大数运算,注意JavaScript/TypeScript的数字精度限制
通过熟练掌握这些运算符,您将能够构建各种复杂的表达式和逻辑,为ArkTS编程打下坚实基础。
