我正在使用一个名为phpjs 的 JavaScript 库 目标是创建模仿 PHP 如何处理它们的函数。
这是一个特别的功能:http ://phpjs.org/functions/is_float:442
我已经编写了几个测试用例,一切都符合预期。但是,当我尝试这个时,一切都会中断:
document.write(is_float(16.0x00000000));
没有真假命中屏幕,只有空白区域。为什么是这样?
当我在它的时候,在那个函数中,它说return !!(mixed_var % 1);
What is the double !! 为了?我以前从未遇到过这种情况。对于以下测试用例,在源代码中省略一个会得到完全相同的结果。有什么我可能会忘记的情况吗?
document.write(is_float(186.31));document.write('<br>');
document.write(is_float("186.31"));document.write('<br>');
document.write(is_float("number"));document.write('<br>');
document.write(is_float("16.0x00000000"));document.write('<br>');
document.write(is_float("16"));document.write('<br>');
document.write(is_float(16));document.write('<br>');
document.write(is_float(0));document.write('<br>');
document.write(is_float("0"));document.write('<br>');
document.write(is_float(0.0));document.write('<br>');
document.write(is_float("0.0"));document.write('<br>');
document.write(is_float("true"));document.write('<br>');
document.write(is_float(true));document.write('<br>');
document.write(is_float("false"));document.write('<br>');
document.write(is_float(false));document.write('<br>');
编辑:关于 0.0 问题,无法修复。检查文档:
//1.0 is simplified to 1 before it can be accessed by the function, this makes //it different from the PHP implementation. We can't fix this unfortunately.
看起来这只是 JavaScript 自己做的事情。程序员无法控制这一点。