什么是 typeof 运算符?

typeof 运算符是 JavaScript 中用于确定变量类型的一个重要工具。它返回一个表示操作数类型的字符串。这个运算符在调试和类型检查时非常有用,可以帮助开发者理解变量的内容以及在运行时可能遇到的类型问题。

1. 基本用法

1.1 语法

typeof 的基本语法如下:

typeof operand
  • operand:可以是任何 JavaScript 表达式,包括变量、字面量、对象等。

typeof 运算符会返回一个字符串,表示 operand 的数据类型。

1.2 返回值

typeof 运算符可能返回以下几种字符串:

  • "undefined":当变量未定义时。
  • "boolean":当变量为布尔值(truefalse)时。
  • "number":当变量为数字(包括整数和浮点数)时。
  • "string"
### C# 运算符概述 C# 提供了丰富的运算符集合,涵盖了多种用途和功能。这些运算符可以根据其作用分类为不同的类型,每种类型都有特定的功能和用法。 #### 1. **算术运算符** 算术运算符用于执行基本的数学计算,包括加法、减法、乘法、除法以及取模操作。 - `+` 加法 - `-` 减法 - `*` 乘法 - `/` 除法 - `%` 取模 例如: ```csharp int a = 10; int b = 3; Console.WriteLine(a + b); // 输出 13 Console.WriteLine(a % b); // 输出 1 ``` #### 2. **逻辑运算符** 逻辑运算符主要用于布尔值之间的逻辑判断。 - `&` 按位与 - `|` 按位或 - `^` 按位异或 - `~` 按位非 - `&&` 逻辑与 - `||` 逻辑或 - `!` 非 例如: ```csharp bool x = true; bool y = false; Console.WriteLine(x && y); // 输出 False Console.WriteLine(!y); // 输出 True ``` #### 3. **字符串连接运算符** `+` 运算符也可以用来拼接字符串。 ```csharp string greeting = "Hello" + "World"; Console.WriteLine(greeting); // 输出 HelloWorld ``` #### 4. **增量和减量运算符** `++` 和 `--` 分别表示自增和自减操作。 ```csharp int count = 5; count++; // 等价于 count = count + 1 Console.WriteLine(count); // 输出 6 ``` #### 5. **移位运算符** `<<` 左移和 `>>` 右移用于二进制数据的移动。 ```csharp int value = 8; // 二进制为 1000 value <<= 1; // 结果为 16 (二进制为 10000) Console.WriteLine(value); ``` #### 6. **比较运算符** 比较运算符用于比较两个值的关系。 - `==` 相等 - `!=` 不相等 - `<` 小于 - `>` 大于 - `<=` 小于等于 - `>=` 大于等于 例如: ```csharp int num1 = 10; int num2 = 20; Console.WriteLine(num1 < num2); // 输出 True ``` #### 7. **赋值运算符** 赋值运算符用于给变量分配新值。 - `=` 简单赋值 - `+=`, `-=` 等复合赋值运算符 例如: ```csharp int total = 0; total += 5; // 等价于 total = total + 5 Console.WriteLine(total); // 输出 5 ``` #### 8. **成员访问和索引运算符** - `.` 成员访问运算符 - `[]` 数组或索引器访问 例如: ```csharp class Person { public string Name; } Person p = new Person(); p.Name = "Alice"; // 使用 . 访问成员 Console.WriteLine(p.Name); int[] numbers = { 1, 2, 3 }; Console.WriteLine(numbers[1]); // 使用 [] 访问数组元素 ``` #### 9. **条件运算符** 三元运算符 `?:` 是一种简化版的 `if...else` 结构。 ```csharp int number = 10; string result = (number > 5) ? "Greater than 5" : "Less or equal to 5"; Console.WriteLine(result); // 输出 Greater than 5 ``` #### 10. **空相关运算符** - `?` 定义可空类型[^2] - `??` 空合并运算符[^2] - `?.` 如果左侧不为 null 则执行右侧操作 例如: ```csharp int? nullableInt = null; int defaultValue = nullableInt ?? 0; // 若 nullableInt 为 null,则返回 0 Console.WriteLine(defaultValue); // 输出 0 string text = null; Console.WriteLine(text?.Length); // 返回 null 而不会抛出异常 ``` #### 11. **类型转换和信息查询** - `(type)` 显式类型转换 - `is` 测试对象是否属于指定类型 - `as` 执行安全类型转换 - `typeof` 获取类型的 Type 对象 例如: ```csharp object obj = 123; if (obj is int) { Console.WriteLine("Object is an integer"); } int? castedObj = obj as int?; Console.WriteLine(castedObj.HasValue); // 输出 True 或 False ``` #### 12. **溢出控制和其他特殊运算符** - `checked`/`unchecked` 控制整数运算中的溢出行为[^4] - `new` 创建实例或调用方法重载解析 - `sizeof` 查询未托管类型的大小(仅限不安全上下文) 例如: ```csharp int largeNumber = unchecked((int)(long.MaxValue)); // 允许溢出而不引发异常 Console.WriteLine(largeNumber); ``` --- ### 总结 以上列举了 C# 中常见的各类运算符及其具体用法。通过合理运用这些运算符开发者能够实现复杂的业务逻辑并优化程序性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值