1、JS对象元素比较判断的问题
问题描述:
如果如下通过对象的元素与一变量做等于比较如果相等就执行if块内的代码,程序执行到判断条件的时候就会报错,说“XXX没有定义”,怎么可能呢!
如果如下通过对象的元素与一变量做等于比较如果相等就执行if块内的代码,程序执行到判断条件的时候就会报错,说“XXX没有定义”,怎么可能呢!
var opt = {context:"giveFriendGift", id:100};
if(opt.context == "giveFriendGift")
{
alert("cccc");
}
折腾了半年,就尝试把opt.context用括号括起来,看看怎样,发现如下写可以正常运行:
var opt = {context:"giveFriendGift", id:100};
if((opt.context) == "giveFriendGift")
{
alert("cccc");
}
看这个意思应该和运算符执行顺序有关系了,记下来以防再出现让人头疼的问题了。
2、电脑更换上硬盘后无法启动,老是重启问题
问题描述:
一个正常的硬盘更换到其它主机上,发现系统无法启动了,按说应该没问题呀,更换硬盘不就像,U盘插到电脑上一样的原理吗?插到任何电脑上都可以用
实际上这个想法是错误的,U盘能在电脑上识别是因为它能自动安装驱动,所有操作系统能识别它,而硬盘更换就不一样了,它无法自动安装驱动,它里面的驱动都是之前安装系统时那个主机硬件的驱动,换到其它主机上,由于硬件的差别,就会出现问题。所以以后要注意到此问题。
3、PHP中浮点数的比较
问题描述:
$a = 0.92;
$b = 0.9;
if($a > $b)
{
//...
}
按正常来说是大于0的,不过直接这位浮点数的比较在不同的硬件环境下,很有可能会出现不正确的结果,所以浮点数的比较或数据运算一定要用专用方法,PHP提供了BCMath扩展库,此库中提供了浮点数的操作方法。
4、PHP含有特殊字符的序列化
问题描述:
要序列化的对象中含有特殊字符,其中有个商品名称的字段,是用户输入的,通过序列化后通过WebService传输到另一个系统,没想到Soap把502 BadRequest,没有提供有用的信息来进行错误的排查,在WebService服务器端也获取不到有用的错误信息,通过正常同步过去商品的数据和无法同步过去的商品的数据用文本比较工具比较发现商品名称里含有特殊字符,含有特殊字符的数据序列化后通过网络传输,对方再反序列时可能会出现问题。
5、MYSQL排序查询时结果随机返回,造成前台记录重复展示
问题描述:
如果SQL查询排序字段组合值不唯一就有可能出现每次执行同样的查询条件返回的结果不一致的问题,由其是在由分页的情况下,会发现后面的页出现了之前页已经出现的结果,而有些结果却无法显示出来。
解决方法:排序字段组合值一定要唯一