
JS
远行MM
这个作者很懒,什么都没留下…
展开
-
requestAnimationFrame
Javascript 中可以通过定时器 setTimeout 和setinterval来实现但是这两种定时器的实现并不精确,会受到其他定时器的影响,setTimeout 任务被放进了异步队列中,只有当主线程上的任务执行完以后,才会去检查该队列里的任务是否需要开始执行,因此这两种定时器的实际执行时间通常都会晚于设定时间。这样的后果就是可能会出现掉帧。推荐使用requestAnimationF...原创 2019-11-13 18:17:02 · 457 阅读 · 0 评论 -
使用LocalStorage把数据存储在设备上
Laya官方文档的解释是“用于没有时间限制的数据存储”。w3c上给出的说法是“用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。”个人觉得w3c给出的释义更好理解。作用就是将数据不设置过期时间,永久保留在本地,除非手动删除保存的数据。与sessionStorage类似,但sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签...原创 2019-04-12 15:34:00 · 2410 阅读 · 0 评论 -
定位JS死循环位置
上周写代码写了个死循环,当时不知道是死循环,整个代码重构了一遍,还是跑不起来,Chrome一直在加载,控制台JS代码都显示不出来,当时怀疑是死循环,但是代码量那么多,无从查起,而且没有做版本管理,只能重写代码,难受尝试过重装Chrome还是没用,于是换了Microsoft EDGE,结果是代码能加载出来,但是页面表现不符合预期,整个页面什么都没显示出来。最后尝试用Firefox,结果如下,出现了提示某个网页让您的浏览器变慢了。您想如何处理?当然是选择右边的停止了,这时候JS代码就加载出来了,原创 2020-05-25 10:41:25 · 2349 阅读 · 0 评论 -
for循环内外定义变量的区别
直接上代码 var attrOuter:Object={}; var objOuter:Object={}; var indexOuter:int; var objInner:Object={}; for (var i:int=0; i < 5; i++) { indexOuter=i; attrOuter.name=i.toStrin...原创 2019-05-22 22:06:24 · 20348 阅读 · 0 评论 -
for in和for each遍历的区别
var dataSource:Object = {}; dataSource[1] = 1000; dataSource[2] = 2000; dataSource[3] = 3000; dataSource[4] = 4000; console.log("for each遍历"); for each(var value:int in dataSourc...原创 2019-05-21 23:52:56 · 5274 阅读 · 0 评论 -
JS拼接字符串的效率
JS拼接字符串的方式,1、最常见的是+=;2、还可以先将字符串转化为数组,然后调用Join实现字符串拼接arr.push(str);return arr.join("");效率分为运行速度和内存消耗问题,网上查了相关资料,结论就是join在字符串字节很大时(百万级以上),用join会明显快于用+=实现的字符串拼接(),用+=耗时大概时10秒,用join大概是几百毫秒,当字节数很...原创 2019-03-18 15:22:51 · 4599 阅读 · 1 评论 -
正则表达式
1、JS风格 eg:var str = "abcdefg";//检测字符串中是否出现过a,忽略大小写var re = new RegExp("a","i");//正则对象(不是字符串对象)的test()方法,返回true 或者 falseconsole.log(re.test(str));2、Perl风格var str = "abcdefg";var原创 2017-09-06 23:47:37 · 327 阅读 · 0 评论 -
Array对象方法
concat()连接两个或更多的数组,并返回结果。join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。pop()删除并返回数组的最后一个元素push()向数组的末尾添加一个或更多元素,并返回新的长度。reverse()颠倒数组中元素的顺序。shift()原创 2017-09-07 18:19:32 · 672 阅读 · 0 评论 -
内存管理
为防止运行JS的网页耗尽全部系统内存导致系统奔溃,所以分配给浏览器的可用内存有限。因此,为了提高页面性能,可用让执行的代码中只保存必要的数据,具体操作是解除引用,如var obj = null;当垃圾收集器下次运行时,便可达到回收内存的目的原创 2017-09-06 23:14:31 · 210 阅读 · 0 评论 -
引用类型(类)
可用进行类比,但是并不是相同的概念,引用类型不具备传统的OO语言所支持的类和接口等基本结构引用类型(对象定义)----类引用类型的值----对象Object类型Array类型1、shift()t:删除数组的第一个元素,返回删除的值。这里是0 2、unshift(3,4):把参数加载数组的前面,返回数组的长度。现在list:中是3,4,0,1,2 3、pop():原创 2017-09-06 23:22:12 · 373 阅读 · 0 评论 -
垃圾收集
垃圾收集器会按照固定的时间间隔周期性地进行垃圾收集,垃圾收集的问题是能否真的收集垃圾1、标记清除 最常用,变量进入环境时,标记为”进入环境“,变量离开环境时,标记“离开环境”,只有标记为“离开环境”的变量才能进行垃圾收集,释放内存2、引用计数 不常见, 存在循环引用问题。 当声明了一个变量并将另一个引用类型的值赋给该变量时,则这个引用类型的值的引用次数为1,得了另一原创 2017-09-06 22:59:13 · 320 阅读 · 1 评论 -
执行环境和作用域
执行环境(环境)是JS中最重要的一个概念。环境定义了变量或函数有权访问的其他数据;每个环境都有一个与之关联的变量对象(在作用域链上正在被执行和引用的变量对象叫活动对象);环境中定义的所有变量和函数都保存在这个对象中;代码在一个环境中执行,就会创建变量对象的一个作用域链,作用域链保证对环境有权访问的所有变量和函数有序执行,作用域链的前端,始终都是当前执行的代码所在环境的变量对象;原创 2017-09-06 22:45:48 · 208 阅读 · 0 评论