JavaScript
LuckyFBB
这个作者很懒,什么都没留下…
展开
-
JS执行机制
关于JS执行机制这一块内容,一直是自己比较难以理解的知识点,结合自己看的资料与代码实践,写一篇总结。首先,我们熟知JS是单线程语言,再同一时间只能做一件事情。所以JS是按着语句顺序依次执行下来的。let a = 1console.log(a)let b = 2console.log(b)//依次输出1 2之后,接触了很多知识之后,我们认识到了两个定时器setTimeout和它的...原创 2019-03-07 21:00:39 · 632 阅读 · 0 评论 -
事件节流/事件防抖
在resize/scroll/keypress/mousemove等事件触发时,会不断的调用绑定事件上的回调函数,降低了性能。然后引入了一下两个概念。事件节流什么是事件节流节流是在一段时间内只允许函数执行一次。方案//时间戳方式function throttle(fn, delay) { let pre = Date.now() return function () {...原创 2018-12-28 16:54:22 · 990 阅读 · 0 评论 -
JavaScript常用数组操作方法
concat()连接两个或者多个数组。不改变原数组join()把数组中所有的元素放到一个字符串里。不改变原数组push()向数组的末尾添加一个或多个元素,并返回新的长度。改变原数组pop()用于删除并返回数组的最后一个元素,返回最后一个元素。改变原数组shift()用于把数组的第一个元素从其中删除,并返回第一个元素值。改变原数组unshift()向数组的开头添加一个或者多个...原创 2018-09-26 18:13:33 · 231 阅读 · 0 评论 -
关于this对象
js中this的四种用法在一般函数方法中使用this指代全局对象(默认绑定)var x=1;function test(){ console.log(this.x)}test(); //1作为对象方法调用,this指向上级对象(隐式绑定)function test(){ console.log(this.x)}var obj={ x:1, func...原创 2018-10-11 11:17:16 · 204 阅读 · 0 评论 -
模拟实现apply/call
call func.call(obj,args1,args2); //传入的是参数列表 apply func.call(obj,[args1,args2]); //传入的是数组参数 记法:apply是a开头为array改变this的指向,让bar()函数的this指向foo对象var foo={ value: 100}function bar(){ ...原创 2018-10-11 08:39:00 · 470 阅读 · 0 评论 -
JavaScript的深拷贝和浅拷贝
基本数据类型:number、string、boolean、null、undefined。引用数据类型(Object类):对象、数组、函数。基本数据类型—名值都存在栈内存中let a=1当复制b=a的时候,栈内存会开辟一个新的内存。即使修改a=2,这时候对b并不会有任何影响。引用数据类型–名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用地址指向堆内存中的值当b=a进行...原创 2018-09-17 21:38:54 · 453 阅读 · 0 评论 -
JS的继承方法
父类:// 定义一个动物类function Animal (name) { // 属性 this.name = name || 'Animal'; // 实例方法 this.sleep = function(){ console.log(this.name + '正在睡觉!'); }}// 原型方法Animal.prototype.eat = function(...转载 2018-05-29 18:46:57 · 176 阅读 · 0 评论 -
JS阻止事件冒泡
事件冒泡:事件开始是由具体的元素接收,然后逐级向上传播到不具体的节点。添加以下代码<div class="content"> <a href="http://www.baidu.com" target="_blank">hhhh</a></div>添加CSS.content{height: 200px;width: 600px;原创 2018-05-07 18:37:18 · 404 阅读 · 0 评论 -
个人对跨域的理解
什么是跨域?跨域是指浏览器不能再执行其他网站的脚本。它是由浏览器同源策略造成的,是浏览器施加的安全限制。同源是指:域名(domain)、协议(protocol)、端口(port)。URI 说明 是否跨域 http://www.LuckyFBB.com/a.jshttp://www.Lucky.cm/b.js 不同域名 是http://www.LuckyFBB.com/src/a.jshttp://...原创 2018-04-24 15:31:24 · 254 阅读 · 0 评论 -
个人对JSON的理解
JSON:JavaScript Object Notation(JavaScript对象表示法)JSON是存储和交换文本信息的语法。类似XML。JSON比XML更小、更快、更容易解析。1、语法 JSON语法是JavaScript对象表示语法的子集。 1)、数据在名称/值对中 2)、数据由逗号分隔 3)、大括号保存对象 4)、中括...原创 2018-04-17 15:33:56 · 1559 阅读 · 0 评论 -
JavaScript中运算符的优先级
JavaScript中运算符也分等级。具有较高优先级的运算符先于较低优先级的运算符执行。下表中按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。运算符描述. [] ()字段访问、数组下标、函数调用以及表达式分组++ -- - ~ ! delete new typeof void一元运算符、返回数据类型、对象创建、未定义值* / %乘法、除法、取模+ ...原创 2018-04-17 10:00:43 · 1290 阅读 · 0 评论 -
JavaScript数据类型
ECMAScript中有五种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String。还有一种复杂数据类型:Object。因为ECMAScript数据类型具有动态性,所以这六种数据类型足够表示所有数据。1、typeof操作符 ECMAScript是松散类型,可以用typeof来检测给定变量的数据类型。typeof操作符返回字符串。 "und...原创 2018-04-16 20:22:57 · 191 阅读 · 0 评论 -
JavaScript中的同步与异步
首先了解JavaScript是单线程语言,做任何事情的时候都是一条流水线(单线程)。同步和异步的区别就是在这个流水线上执行顺序不同。最基础的异步是setTimeout和setInterval函数。改变了程序正常的执行顺序。因为JavaScript是单线程。意味着,所有的任务执行都是需要排队的。前一个任务结束之后,下一个任务才能够开始。如果前一个任务消耗的时长过长,后一个任务就不得不一直等待。因此引...原创 2018-04-16 16:09:45 · 375 阅读 · 0 评论 -
深拷贝和浅拷贝
JS有两种数据类型基本数据类型 string/number/boolean/undefined/null/symbol(ES6)引用数据类型 object/array/function基本数据类型储存在栈内存中,保存与复制都是数据本身引用数据类型储存在堆内存中,保存与复制都是指向对象的指针浅拷贝对于基本数据类型来说,拷贝一份互不影响;而对于数组和对象来说,只会拷贝数组或者对象的...原创 2019-03-11 14:33:02 · 294 阅读 · 0 评论