JavaScript
文章平均质量分 59
CarolineL
这个作者很懒,什么都没留下…
展开
-
关于距离的那些个值
获取元素的位置 offsetLeft 、offsetTop跟父元素的position属性(relative、absolute、fixed)有关;如果父级没有设置以上的值,则是相对于容器的距离;看下面的这个例子:<style>body { margin: 0px; height: 1300px;}.container { /* position: relative; */ /* left: 200px; */ margin-left: 200px; top: .原创 2021-02-26 20:45:18 · 240 阅读 · 0 评论 -
Blob
最近看了关于JS的二进制家族 (很???? 的一篇文章)更清楚的了解了Blob;Blob是前端专门用于支持文件操作的二进制对象。File继承了所有Blob的属性,所以File自然就可以直接调用Blob对象的方法。 使用 Blob可以进行以下几种操作:文件下载(URL.createObjectURL(blob)生成Blob URL;然后赋值给 a.download)图片显示 (URL.createObjectURL(blob)生成Blob URL;然后赋值给 img.src,或者使用FileRead原创 2021-02-26 16:13:09 · 671 阅读 · 0 评论 -
解决跨域的几种方式
由于浏览器具有同源策略的限制,当我们想要访问不同源的资源或者数据的时候就会受到限制。比如 ee.bb.com想要访问cc.nihao.com里面的数据就会被拒绝访问。此时就需要解决跨域的问题,一般解决跨域有以下几种方式: 1、服务器代理中转 同源策略只是浏览器的一个限制,但是对后台没有影响,所以可以通过与ee.bb.com同源的服务器去访问cc.nihao.com里的数据.2、doc...原创 2018-09-03 00:21:04 · 1244 阅读 · 0 评论 -
函数式编程
转载地址: 函数式编程 应该很多童鞋都听过函数式编程(Functional programming)的概念吧,可能有的童鞋有听说过函数式编程但并不是特别了解,但其实在我们的开发过程中,或多或少都已经应用了函数式编程的思想。相对于面向对象编程(Object-oriented programming)关注的是数...转载 2019-03-28 21:26:10 · 201 阅读 · 0 评论 -
数组排序方法
var arr = [6, 3, 5, 1, 9, 4, 7, 8, 2];1、冒泡排序:比较相邻的两项,如果第一项比第二项大,则交换他们。 //冒泡排序 Array.prototype.bubbleSort = function () { var len = this.length; for (...原创 2018-10-05 17:58:37 · 1349 阅读 · 0 评论 -
惰性函数
先举一个例子:写一个函数,这个函数的返回值为第一次调用时的new Date().getTime()值。首先想到的是定义一个全局变量,然后在函数中判断该变量是否有值,如果有值则直接返回;否则进行赋值。 var t = null; function getTime() { if (t) { return t; ...原创 2018-09-28 23:36:18 · 346 阅读 · 0 评论 -
数组的扁平化处理
数组的扁平化处理是将多维数组转换成一维数组的形式。比如数组[1, 2, 3, [4, 5], {}, null, [[6, 7], [[[[8]]], 9]]]扁平化处理后——&amp;amp;gt;[1, 2, 3, 4, 5, {}, null, 6, 7, 8, 9]下面这些方法可以实现数组的扁平化。 var originArr = [1, 2, 3, [4, 5], {}, null, [[6, 7...原创 2018-09-27 20:16:36 · 498 阅读 · 0 评论 -
数组去重方法
要将数组arr去重可用如下四种方法: var arr = [3, 6, 'a', 3, 2, 6, 3, 'a', 'b'];1、利用数组中的indexOf方法: function unique1(originArr) { var newArr = [], len = originArr.length; ...原创 2018-10-05 15:55:15 · 297 阅读 · 0 评论 -
Javascript中的圣杯模式继承
实现继承的方式有很多种,比如:通过原型链方式、call/apply方式、共享原型、圣杯模式实现继承。这里主要介绍圣杯模式。其主要思想是利用一个临时函数作为中间层以及原型链的方式实现继承。 Origin.prototype.value = 'origin'; function Origin() { } function Target(...原创 2018-08-24 08:28:44 · 1514 阅读 · 2 评论 -
Javascript请求性能——防抖和节流
在前端开发中,会有一部分用户的行为会频繁的触发事件执行,而对于DOM操作、资源加载等耗费性能的处理,很有可能造成页面卡顿,甚至浏览器崩溃。函数节流(throttle)和函数防抖(debounce)就是为了处理类似需求应运而生的。一、防抖 函数防抖就是函数在频繁需要触发情况时,只有等足够空闲的时间才去执行一次。好像公交车司机等人都上车以后才出站一样。 比如我们在做搜索框的时候...原创 2018-08-23 23:40:11 · 2186 阅读 · 0 评论 -
Javascript中call、apply和bind的区别以及源码解析
我们知道在javascript中call和apply以及bind都可以改变this指向,那么它们是怎么实现的呢?彼此之间有什么区别呢?首先我们先来分别解析一下它们: (一)call 首先我们先来看一下如何使用call: var value = 'window'; var obj = { value: 'obj' }...原创 2018-08-21 00:02:25 · 2782 阅读 · 0 评论 -
BOM常用知识点
一、BOMBOM是browser object model的缩写,简称浏览器对象模型。主要处理浏览器窗口和框架,描述了与浏览器进行交互的方法和接口,可以对浏览器进行访问和操作,譬如可以弹出新窗口、回退历史记录、获取URL等……..二、BOM与DOM 的关系javascript是通过访问BOM 对象来访问、控制、修改浏览器BOM对象的核心是window,而window中包含了docu...原创 2018-08-20 19:50:52 · 649 阅读 · 0 评论 -
Javascript中的运动
一、匀速运动 可以通过offsetLeft/top获取自身的实时位置,在自身的位置的基础上,通过定时器不断执行,每次在自身位置的基础上再加上一个恒定的速度值,即可形成一个简单的匀速运动。function move1(dom, target) { clearInterval(dom.timer); dom.timer = setInterval(...原创 2018-08-13 19:52:39 · 550 阅读 · 0 评论 -
Javascript封装Ajax方法
function ajaxFuc(method, url, param, callback, flag) { var ajax = null; if (window.XMLHttpRequest) { ajax = new XMLHttpRequest(); } else { ajax = new ActiveXObject('Microso...原创 2018-08-16 00:03:34 · 204 阅读 · 0 评论 -
Javascript预编译
Javascript中使用函数作用域: 变量在声明它们的函数体内以及这个函数体嵌套的任意函数体都是有定义的。也就是说在函数内声明的所有变量在函数体内都是可见的,这意味着变量在声明之前已经可用。这个特性称为声明提前,即Javascript函数里声明的所有变量(不涉及赋值)都被提前至函数体的顶部。而声明提前是在Javascript引擎的“预编译”的时候进行的。 预编译发生的时期:在函数执行...原创 2018-07-06 20:43:35 · 245 阅读 · 0 评论 -
JavaScript中的包装对象
包装对象:在存取字符串、数字或布尔值的属性时创建的临时对象称为包装对象。偶尔用来区分字符串值和字符串对象、数字和数值对象以及布尔值和布尔对象。例1: var num=4; num.len=2; //隐式 var num =new Number(4) ; num.len=2 执行完后就销毁 console.log(num.len);//此处会打印undefined 再次...原创 2018-07-06 13:24:21 · 254 阅读 · 0 评论 -
Js中的数据类型及数据类型转换
1、数据类型: 原始值:数字、字符串、布尔值、undefined 、null 原始值存在于栈中,赋值相当于拷贝 引用值:数组、对象(自定义对象、内置对象)、函数、日期、RegExp等 , 赋值相当于拷贝地址var b = [1, 2]; a = b; --> a : [1, 2] 1) b = [...原创 2018-07-08 10:27:01 · 312 阅读 · 0 评论