creator引擎源码解析之游戏启动
问题:
-
游戏启动的时候,引擎做了什么,游戏启动流程?
-
游戏定时刷新是怎么实现的?
知识点:
-
!==、===和!=、==区别
1.1 比较过程的区别 !=、==比较时如果类型不同则会尝试转换类型再比较;!==、===只有类型相同才比较
1.2 比较结果上的区别 !==、===不同类型不比较也不返回结果;!=、==返回比较结果
var num = 1;
var str = '1';
var test = 1;
test == num //true 相同类型 相同
test === num //true 相同类型 相同值
test !== num //false test与num类型相同,其值也相同, 非运算肯定是false
num == str //true 把str转换为数字,检查其是否相等。
num != str //false == 的 非运算
num === str //false 类型不同,直接返回false
num !== str //true num 与 str类型不同 意味着其两者不等 非运算自然是tru
== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。
而
=== 和 !== 只有在相同类型下,才会比较其值。(值和类型都相同的情况下比较)
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。
2.!!作用 强转为布尔类型
3. window.requestAnimationFrame 实现定时刷新游戏
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/requestAnimationFrame
https://juejin.im/post/5c3ca3d76fb9a049a979f429
4.Array.shift()和Array.pop()区别 前者是取出第一个元素;后者是取出最后一个。
5.key in map 可以用来判断某个map里面是否包含某个key
6.substring和substr区别
6.1 substring(startindex,endindex) 两个参数分别是开始和结束位置
6.2 substr(startindex,length) 两个参数分别是开始位置和截取长度
7.Object.create(null)和{}区别 前者创建出来的对象没有原型对象、原型方法;后者有;前者创建的对象性能更好
8.js函数arguments arguments对象是所有(非箭头)函数中都可用的局部变量;并非数组;可以通过length属性获得参数长度
思考:
1.creator原生游戏的启动流程是什么样的,请自行调试?
想利用碎片化时间提升下技术的朋友请关注我!