javascript
Lysa_snow
这个作者很懒,什么都没留下…
展开
-
数组打乱顺序的方法
[1,2,3,4,5,6,7,…,100,…] 井然有序的数组,如何打破它的顺序?也类似于洗牌游戏。 首先我们先创建一个井然有序的数组例如1到100的数组var arr = [];for(var i=1; i<=100; i++) { arr.pus(i);}实现打乱顺序的核心代码如下arr.sort(function() { return 0.5-Math.random;原创 2017-11-22 17:05:11 · 2165 阅读 · 2 评论 -
javascript垃圾回收机制
垃圾回收就是 找出不再使用的变量,然后释放掉其占用的内存,但这个过程不是实时的,因为开销比较大,所以垃圾回收机制会按照固定的时间间隔周期性的执行。变量生命周期: 全局变量的生命周期直至页面卸载才会结束;局部变量只在函数执行的 过程中存在,在堆或栈上分配好空间存储起来以便函数中使用,直至函数结束(不存在闭包的情况下)。几种垃圾回收的方式: 1)标记清除: 最常见的方式; 函数中声明一个变原创 2017-11-29 11:03:31 · 184 阅读 · 0 评论 -
javascript事件节流
比较常用的: 1.标志变量法: 设置一个开关变量 开始可以设置为true 并且只有当变量为true的时候才能执行某事件,触发事件后立即设置变量为false(这是我工作中比较常用的方法,简单容易实现,不容易出错) 2.函数节流: 思想就是 指某些代码不可以在没有间断的的情况下连续重复执行。 第一次调用函数 创建一个延时器 指定时间间隔后触发事件;第二次执行该函数时会清除之前设定的延时器原创 2017-11-29 11:06:30 · 1157 阅读 · 0 评论 -
ES6 let & const
1.let 声明变量 在{}里面形成块级作用域 在代码块内形成“暂时性死区” 离开了{}就相当于var 但不存在变量提升 例如:for(let i=0; i<10; i++) { … } console.log(i); //报错 for(var i=0; i<10; i++){ a[i] = function() { console.log(i); } } a6; //输出10 但原创 2017-11-29 11:12:17 · 244 阅读 · 0 评论 -
Babel简介
一、Babel转码器 将ES6的语法转换为浏览器识别的ES5代码 1)配置文件: .babelrc 放在根目录下 必须的配置文件{"presets": [ "latest", "react", "stage-2"],"plugins": [ ]}2)工具 babel-cli 命令行转码(一般安装在项目中 –save-dev 然后改写成package.原创 2017-11-29 11:14:32 · 306 阅读 · 0 评论 -
浏览器多个标签页通信
1.地址栏传参也算是多个标签页通信吧 2.localstorage、cookie等本地存储方式 (1)localstorage 在一个标签页里被添加、修改或删除时,都会触发一个storage事件,这样我们就可以利用这一点在其他标签页面里监听这个事件 就可以获取到新值 标签页1: $(function(){ $("#btn").click(function(){原创 2017-11-29 11:21:21 · 430 阅读 · 0 评论 -
js中this的理解/this遇上闭包/作用域
相信很多人开始学习js的时候,关于this的理解不是很清晰,并且一般靠直觉…然并卵,直觉这玩意儿不好说…在厌烦了直觉判断后的我,翻阅了很多…好吧,百度了好多文章,下面是我关于this的总结 (1)this的指向在函数定义的时候是确定不了的,只有在执行的时候才能确定this指向; (2)this最终指向调用它的上一级对象; (3)一般指向函数的拥有者,特殊的是自执行函数原创 2017-11-29 10:54:26 · 405 阅读 · 0 评论 -
前端面试总结/JS面试
1.JS继承机制 构造函数中的属性和方法是不共享的,而为了共享一些属性和方法,也为了不浪费资源,出现了prototype,挂在prototype上的属性和方法是共享的。function Ani(name) { this.name = name; // this.act = '叫';}var dog = new Ani('狗');var cat = new Ani('猫');//原创 2018-01-17 15:42:00 · 567 阅读 · 0 评论