JavaScript学习笔记
DayDay_Lee
转战掘金:https://juejin.im/user/5ef326ab6fb9a07ebe237664
展开
-
JavaScript-属性描述符
属性描述符属性描述符(property descriptor)是一个普通的对象,用于描述属性的相关信息,这些相关信息称之为属性元数据(metadata)我们可以通过Object.getOwnPropertyDescriptor(对象, 属性名)来得到某个对象的某个属性的描述符,描述符中记录了以下的信息:configurable:属性描述符是否可以被重新修改enumerable:属性是否是...原创 2019-10-28 22:21:54 · 109 阅读 · 0 评论 -
Js获取设置属性值以及jquery中的attr与prop区别
文章目录setAttributegetAttributejq-attr()jq-prop()getAttribute元素.setAttribute(‘属性名’)获取元素的行间属性对应的属性值,不能获取css样式对应的属性值如果获取的属性不存在返回nullsetAttribute元素.setAttribute(‘属性名’,属性值)设置元素的行间属性,如果原来有这个行间...原创 2019-10-14 12:21:39 · 1136 阅读 · 0 评论 -
jQuery-sizzle选择器原理
前言大概是今天看到jquery源码的init函数时候,对于选择器的应用时候,用到了这个sizzle模块,据说这个模块搜索引擎处理这个特别快,最后成为一个独立的模块,可以自由地引入到其他类库中。从中收获颇多,一方面是框架设计的思路,另外一方面是编程的技巧。确实,看jquery源码的时候,发现这个写源码的团队都是神人,思想上受到启发可以去官网看看/* * jQuery JavaScr...原创 2019-10-09 19:35:58 · 206 阅读 · 0 评论 -
js-运动总结(常见运动效果)
匀速运动加速运动缓冲运动碰撞运动重力运动多物体多链式运动框架1. 匀速运动速度isSpeed是个定值function startmov(obj) { clearInterval(timer); var isSpeed = 10; timer = setInterval(function () { ...原创 2019-10-02 23:41:20 · 304 阅读 · 0 评论 -
JavaScript-手写实现getElementsByClassName功能方法
参数为String类型,指定类名Document.prototype.getByClassName = function ( className ){ var ansArr = []; var allClass = document.getElementsByTagName('*'); //得到所有的DOM标签元素 返回的是类数组 ...原创 2019-10-01 22:53:46 · 320 阅读 · 0 评论 -
js-判断鼠标移入移出的方向
写好的函数,判断移入移出时鼠标从哪个方向进去出来的// 返回值// top 0 right 1 bottom 2 left 3// event 鼠标对象 ele 元素function getDer(wrap, event) { var d; var w = ele.offsetWidth, h = ele....原创 2019-09-28 09:51:19 · 475 阅读 · 1 评论 -
JavaScript 性能优化-防抖和节流
由来在前端开发中有一部分的用户行为会频繁的触发事件执行,而对于DOM操作.资源加载等耗费性能的处理,很可能导致页面的卡顿,甚至是浏览器的崩溃.函数节流和函数防抖就是为了解决类似需求应运而生的。节流定义函数节流就是预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。好像水滴攒到一定重量才会落下一样。场景窗口调整(resize)页面滚动(scoll)...原创 2019-09-26 17:20:16 · 302 阅读 · 0 评论 -
JavaScript函数式编程-函数组合应用
定义:**函数组合:**由若干个纯函数、偏函数、柯里化函数组合成一个新的函数,同时,形成数据传递。用途:挑选了一系列所需要的函数,把他们组合在一起,可以实现公共合作的效果最基本的函数组合:function compose (fn,gn){ //fn gn 是两个函数 return function (xn){ return...原创 2019-09-24 18:07:35 · 248 阅读 · 0 评论 -
JS中的惰性函数
惰性函数:惰性函数表示,此函数有很多个分支判断,但这些分支判断只会在第一次调用时执行,执行后会修改此函数,再次调用时无须判断。常用于:针对于去优化频繁使用的函常用于函数库的编写,单例模式中实例:function addEvent(type, element, fun) { if (element.addEventListener) { ...原创 2019-09-24 16:35:15 · 698 阅读 · 0 评论 -
js 函数式编程之柯里化
引入:将使用多个参数的函数转换成一系列使用一个参数的函数的技术主要用途是可以简化代码结构, 提高系统的可维护性, 一个方法, 只有一个参数, 强制地适应了单一性原则例子:function add(a, b, c, d) { return a + b + c + d;}基本调用:add(1,2,3,4)在实现柯里化后:var newadd = Curry(...原创 2019-09-24 10:30:04 · 278 阅读 · 0 评论 -
JavaScript数据处理之扁平化(数组)
数组的扁平化,就是将一个嵌套层的数组转换为只有一层的数组例如:var arr = [1,2,3,[4,5,66],[4343,[22,3,4,5,[2,'ggg',['dd','aa',['qqq','www','eee'],'zzz']]],55353,[1,2,34,6,7],55]];下面是扁平化的数据var ans = [1, 2, 3, 4, 5, 66, 4343, 2...原创 2019-09-24 09:24:11 · 278 阅读 · 0 评论 -
JavaScript之时间线(代码解释)
js加载时间线在js加载开始的时候,浏览器会去记录js执行的这段过程1. 创建Document对象,开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中。这个阶段document.readyState = 'loading'。2. 遇到link外部css,创建线程加载,并继续解析文档。3. 遇到script外部js,并且没有设置async、...原创 2019-09-21 15:29:47 · 475 阅读 · 0 评论