js和php对bool值的判断区别
一.将一种数据类型转换为bool值时,PHP和JS的转换规则不同
PHP中
当转换为 boolean 时,以下值被认为是 FALSE :
- 布尔值
FALSE本身 - 整型值 0(零)
- 浮点型值 0.0(零)
- 空字符串,以及字符串 "0"
- 不包括任何元素的数组(注意,一旦包含元素,就算包含的元素只是一个空数组,也是true)
- 不包括任何成员变量的对象(仅 PHP 4.0 适用)
- 特殊类型 NULL(包括尚未赋值的变量)
- 从空标记生成的 SimpleXML 对象
所有其它值都被认为是 TRUE (包括任何资源)。
-----------------------------------------------------------------------
JS中,字符串"0"是为true的,只要字符串不是空的,都是true
Boolean 表达式的定义:
一个值为 true 或者 false 的表达式。如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:
- 所有的对象都被当作 true。
- 当且仅当字符串为空时,该字符串被当作 false。
- null 和 undefined 被当作 false。
- 当且仅当数字为零时,该数字被当作 false。
数据类型 转换为bool后的值
null --------------------- FALSE
undefined -------------- FALSE
Object ------------------ TRUE
function --------------- TRUE
0 ------------------------ FALSE
1 ------------------------ TRUE
0、1之外的数字--------- TRUE
字符串------------------- TRUE
""(空字符串) -------------FALSE
二.不同类型进行比较时,PHP和JS规则不同
这个比较多,拿bool值举例:
PHP的"=="和JS的"=="在进行比较时,如果有true和false参与,规则会不同
在php中,如果bool和"任何其他类型"比较,"任何其他类型"会转换为bool,转换规则是上述说到的
在JS中,如果bool和"任何其他类型"比较,bool值会先转换为数字,true转换为数字1,false转换为数字0,转换完bool值,再和"任何其他类型"比较
附参考资料
1.JSbool值转换方法链接
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
2.PHP手册:语言参考->运算符->比较运算符.
3.JavaScript权威指南:第4章:表达式和运算符->4.9关系表达式->4.9.1相等和不等运算符.
js和php对bool值的判断区别的更多相关文章
- 总结js中数据类型的bool值及其比较
首先需要知道的是,js中有6个值为false,分别是: 0, '', null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true. 可以使用Bo ...
- C++中未初始化的bool值的问题
原创文件,欢迎阅读,禁止转载. 问题描述 你见过一个这样的bool值吗,判断 var 和 !var 都是成立的,今天被我遇到了,是在一个坑里遇到的.今天调试了一个程序,发送一个网络消息,结果总是得不到 ...
- js中的bool值转换及"&&" 、"||"、 "!!"详解
bool值转换 数据类型 bool值转化 undefined undefined 转化为 false Object null 转化为false,其他为 true Boolean false 转化为 f ...
- Objective-C if语句处理 BOOL值不为1和0的情况
BOOL ,布尔值,在Objective-C ,BOOL类型被typedef为signed char(有符号的整型),YES被#define为1,NO被#define为0. 事实上,xcode的编译器 ...
- JS基础回顾,小练习(判断数组,以及函数)
追梦子博客版权所有. // 判断arr是否为一个数组,返回一个bool值 方法1: function isArray(arr) { var str = arr.__proto__.constructo ...
- js捕捉IE窗口失去焦点事件,判断离开页面刷新或关闭的方法
js捕捉IE窗口失去焦点事件,判断离开页面刷新或关闭的方法 javascript如何捕捉IE窗口失去焦点事件window.onblur = function(e) { //you code}; 弹框的 ...
- Js操作Select大全(取值、设置选中)
Js操作Select是很常见的,也是比较实用的. jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<s ...
- numpy nan值的判断
我发现在数据处理中非常常见的就是nan值的判断,筛选数据尤为常见, 判断数据是否为nan,前提是np.float类型数组,但在应用于对象数组时会引发TypeError # 返回bool类型 np.is ...
- Js操作Select大全(取值、设置选中等等)
jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selecto ...
随机推荐
- rsync 通过 ssh 上传文件
rsync -avzP /www/ -e ssh root@192.168.1.200:/www/ 批处理上传: #!/bin/bash for (( ; ; )) do rsync -avzP /w ...
- 从request获取远程IP地址
public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-F ...
- Leetcode4:Median of Two Sorted Arrays@Python
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
- SequoiaDB 笔记
SequoiaDB 笔记 这几天翻了翻SequoiaDB的代码,记了点笔记.不保证下面内容的正确性(肯定有错的地方) 个人观感 优点 代码还不错,设计也算简洁. EDU和CB的使用让整个系统变得简单很 ...
- php工作笔记8-并发和数据类型
1.mysql在进行数据的修改时,并发情况下: $RoundsRows=$modelRounds->where("id=$roundsID and (sendMoney + $amou ...
- JQuery 插件之Ajax Autocomplete(ajax自动完成)搜索引擎自动显示下拉框
平时用百度,谷歌搜索的时候 会有一个下 拉列表进行提示 这是一个非常好的功能 本文要介绍的这个JQuery 插件 名叫Ajax Autocomplete 顾名思义 ajax 也就是用ajax的方式获取 ...
- 【初学者教程】在电脑上安装Python,写第一个程序
欢迎来到Python的世界 1.存在Python 2和Python 3两个版本,我该用哪个?如果书是关于2的,下载2:如果书是关于3的,就下载3.建议用Python 3,不过用2也是可以的. 2.下载 ...
- prolog --寻找neni (2)
混合查询 我们可以把简单的查询连接起来,组成复杂的查询. ?- location(X,kitchen),edible(X). 简单查询只有一个目标,而混合查询可以把这些目标连接起来.从而进行较为复杂的 ...
- Python语法三
1. from os.path import exists import 了又一个很好用的命令 exists.这个命令将文件名字符串作为参 数,如果文件存在的话,它将返回 True,否则将返回 Fal ...
- NPOI Helper文档
public class ExcelHelper { /// <summary> /// NPOI Excel转DataTable /// </summary> /// < ...