一.将一种数据类型转换为bool值时,PHP和JS的转换规则不同

PHP中

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

所有其它值都被认为是 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值的判断区别的更多相关文章

  1. 总结js中数据类型的bool值及其比较

    首先需要知道的是,js中有6个值为false,分别是: 0, '', null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true. 可以使用Bo ...

  2. C++中未初始化的bool值的问题

    原创文件,欢迎阅读,禁止转载. 问题描述 你见过一个这样的bool值吗,判断 var 和 !var 都是成立的,今天被我遇到了,是在一个坑里遇到的.今天调试了一个程序,发送一个网络消息,结果总是得不到 ...

  3. js中的bool值转换及"&&" 、"||"、 "!!"详解

    bool值转换 数据类型 bool值转化 undefined undefined 转化为 false Object null 转化为false,其他为 true Boolean false 转化为 f ...

  4. Objective-C if语句处理 BOOL值不为1和0的情况

    BOOL ,布尔值,在Objective-C ,BOOL类型被typedef为signed char(有符号的整型),YES被#define为1,NO被#define为0. 事实上,xcode的编译器 ...

  5. JS基础回顾,小练习(判断数组,以及函数)

    追梦子博客版权所有. // 判断arr是否为一个数组,返回一个bool值 方法1: function isArray(arr) { var str = arr.__proto__.constructo ...

  6. js捕捉IE窗口失去焦点事件,判断离开页面刷新或关闭的方法

    js捕捉IE窗口失去焦点事件,判断离开页面刷新或关闭的方法 javascript如何捕捉IE窗口失去焦点事件window.onblur = function(e) { //you code}; 弹框的 ...

  7. Js操作Select大全(取值、设置选中)

    Js操作Select是很常见的,也是比较实用的. jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<s ...

  8. numpy nan值的判断

    我发现在数据处理中非常常见的就是nan值的判断,筛选数据尤为常见, 判断数据是否为nan,前提是np.float类型数组,但在应用于对象数组时会引发TypeError # 返回bool类型 np.is ...

  9. Js操作Select大全(取值、设置选中等等)

    jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selecto ...

随机推荐

  1. rsync 通过 ssh 上传文件

    rsync -avzP /www/ -e ssh root@192.168.1.200:/www/ 批处理上传: #!/bin/bash for (( ; ; )) do rsync -avzP /w ...

  2. 从request获取远程IP地址

    public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-F ...

  3. 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 ...

  4. SequoiaDB 笔记

    SequoiaDB 笔记 这几天翻了翻SequoiaDB的代码,记了点笔记.不保证下面内容的正确性(肯定有错的地方) 个人观感 优点 代码还不错,设计也算简洁. EDU和CB的使用让整个系统变得简单很 ...

  5. php工作笔记8-并发和数据类型

    1.mysql在进行数据的修改时,并发情况下: $RoundsRows=$modelRounds->where("id=$roundsID and (sendMoney + $amou ...

  6. JQuery 插件之Ajax Autocomplete(ajax自动完成)搜索引擎自动显示下拉框

    平时用百度,谷歌搜索的时候 会有一个下 拉列表进行提示 这是一个非常好的功能 本文要介绍的这个JQuery 插件 名叫Ajax Autocomplete 顾名思义 ajax 也就是用ajax的方式获取 ...

  7. 【初学者教程】在电脑上安装Python,写第一个程序

    欢迎来到Python的世界 1.存在Python 2和Python 3两个版本,我该用哪个?如果书是关于2的,下载2:如果书是关于3的,就下载3.建议用Python 3,不过用2也是可以的. 2.下载 ...

  8. prolog --寻找neni (2)

    混合查询 我们可以把简单的查询连接起来,组成复杂的查询. ?- location(X,kitchen),edible(X). 简单查询只有一个目标,而混合查询可以把这些目标连接起来.从而进行较为复杂的 ...

  9. Python语法三

    1. from os.path import exists import 了又一个很好用的命令 exists.这个命令将文件名字符串作为参 数,如果文件存在的话,它将返回 True,否则将返回 Fal ...

  10. NPOI Helper文档

    public class ExcelHelper { /// <summary> /// NPOI Excel转DataTable /// </summary> /// < ...