php,js,python,lua,c/c++,java语言中真假值判断

来源:赵克立博客 分类: 其它 标签:--发布时间:2019-05-12 10:33:46最后更新:2019-11-18 11:40:54浏览:1266
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-11-18 11:40:54
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

真真假假当你只学一门语言时好区分,但是等你学几种语言时就会发现居然都各不相同,搞混就很常见啦!

PHP

php7.2中的真假

https://www.php.net/manual/zh/types.comparisons.php

echo []?'true':'false';//false
echo '0'?'true':'false';//false
echo null?'true':'false';//false
echo ''?'true':'false';//false
echo ''==null?'true':'false';//true

当转换为 boolean 时,以下值被认为是 FALSE:

  1. 布尔值 FALSE 本身

  2. 整型值 0(零)

  3. 浮点型值 0.0(零)

  4. 空字符串,以及字符串 "0"

  5. 不包括任何元素的数组

  6. 特殊类型 NULL(包括尚未赋值的变量)

  7. 从没有任何标记(tags)的 XML 文档生成的 SimpleXML 对象

上面的值互相之间只有''==null 是相等的其它互相不等

JS

console.log(0 ? 'true' : 'false') // false
console.log('' ? 'true' : 'false') // false
console.log(null ? 'true' : 'false') // false
console.log(undefined ? 'true' : 'false') // false
console.log(NaN ? 'true' : 'false') // false
console.log('0' ? 'true' : 'false') // true
console.log({} ? 'true' : 'false') // true
console.log([] ? 'true' : 'false') // true

image.png

Python

print('true' if 0 else 'false')  # false
print('true' if None else 'false')  # false
print('true' if '' else 'false')  # false
print('true' if () else 'false')  # false
print('true' if [] else 'false')  # false
print('true' if {} else 'false')  # false
print('true' if '0' else 'false')  # true

Lua

print(nil and 'true'  or 'false') --false
print('' and 'true'  or 'false') --true
print('0' and 'true'  or 'false') --true
print(0 and 'true'  or 'false') --true
print({} and 'true'  or 'false') --true

发现没有,lua中只有nil和false为假其它都是真,这个还挺不错的。

C/C++

这个语言可以说是所有语言的祖先啦,逻辑值比较接近底层,0为假非0为真,别看使用vs编程的时候那么多true false NULL null ,这些都是定义的宏,底层还是定义的0和1,并且c/c++里面全部都是指针,都是用NULL(0)来初始化的。

Java

java中的只有逻辑类型真假两种,如果你直接传非逻辑值给if语句会给你报错,因为java里面全都是对象,并且每种对象都有对应的判断是否为真的方法比较让人省心


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python