跳至内容
- 早期面向过程的编程语言用整数表达布尔,一般为0为False, 非0为True,比如C/C++.
- 早期为了表达逻辑的真假,一般用宏来指代。c99引入_Bool, 却不是更常见的Bool或bool类型,因为早期大部分项目把它们当做是宏定义或者整型的别名,标准受现实裹挟。
- C/Objc/C++用整数代表真假很简单直接,只要数值为0就是假,不为0就是真,不管是指针还是什么结构。
- VB 也支持整数作为条件。
- 随着编程语言的抽象加强,编程语言将bool当做数据类型,尽可能让它只当做条件表达式的唯一类型,不允许它和数值直接运算。
- Java/C#不能用整形数值作为逻辑表达式判断真假,表达更自然。
- C++虽内置bool类型,依然保持对数值的纯真,和C语言/Python语言一样,同样可以用整形变量作为逻辑判断。
- Ada/Ruby/Swift等编程语言不能用整形变量作为逻辑判断。
- JS作为脚本语言,对条件语句的类型没有做限定,任何支持的类型都可以作为判断条件,不管是Number、Object、Function或者Null、Undefined类型等。
- 如果条件不是Boolean类型,JS将调用Boolean()函数转换成布尔类型。