发表于: 2017-05-10 23:55:57
1 898
今天完成的事情:
任务4基本上完成了。
杀人页面之后进入黑夜解密,设置6个不同的变量,获取平民和杀手的生死状态。
var dk = 0;//死亡的杀手
var dp = 0;//死亡的平民
var tm = 0;//被投死的人
var tp = 0;//被投死的平民
var kill = 0;//杀手人数
var man = 0;//平民人数;
每天结束后判断玩家人数,当杀手人数大于等于平民人数时游戏结束,或者当杀手人数为0时结束游戏。
进入第二天的杀人页面之后,要来通过玩家的生死状态来变色,已经死了的人不能再次点击。
if (wan[i].life == "dead"||wan[i].life == "vote"){
$(".piece").eq(i).css("background-color","red");
}
}
仔细看了一下this的用法:
当函数作为对象的方法调用时,this指向该对象。
当函数作为淡出函数调用时,this指向全局对象(严格模式时,为undefined)
构造函数中的this指向新创建的对象
嵌套函数中的this不会继承上层函数的this,如果需要,可以用一个变量保存上层函数的this。
this在js的函数里面只是一个参数,是通过Fuck.Shit(Bitches)这种语法来传递的,点号前面的表达式就算this。
明天计划的事情:
提交任务,准备小课堂?学习阿贾克斯
遇到的问题:
在获取对象属性的时候搞了很久,一直报错,后来发现我是用了===。
查了一下!=、== 、!==、===的用法和区别:
== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。
=== 和 !== 只有在相同类型下,才会比较其值。
首先,== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。
下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true ,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一 个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试 valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
收获:
如上
评论