关闭

less-loader、css-loader、style-loader

webpack中与样式相关的几个loader: less-loader:将less编译为css css-loader:css-loader会遍历 CSS 文件,找到其中的@import与url(),当作css依赖的模块并处理它们。 style-loader:将css代码插入到页面的style中...
阅读(27) 评论(0)

window.getComputedStyle

window.getComputedStyle(元素,伪类)用于获得元素最终使用的css属性值,返回一个实时的 CSSStyleDeclaration,只读。var dom = document.getElementById("test"), style = window.getComputedStyle(dom);getComputedStyle与style的区别: getComputed...
阅读(37) 评论(0)

js:发布订阅模式

var EventUtil = (function(){ var events = {}; function bind(e,handler){ if(!events[e]){ events[e] = []; } events[e].push(handler); }; function trigg...
阅读(20) 评论(0)

使用apply实现bind方法

Function.prototype.bind = function(context){ //保存this,也就是调用bind的那个函数 var self = this; var args = [].slice.call(arguments,1); return function(){ //将第一次的参数与此次传入的参数合并,调用self函数...
阅读(25) 评论(0)

弄清楚作用域、执行上下文、变量对象、作用域链

作用域:规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。 JavaScript 采用词法作用域,也就是静态作用域,在定义时就确定了作用域。 执行上下文:是全局或函数的执行环境,js引擎使用执行上下文栈来管理执行上下文。初始化的时候首先就会向执行上下文栈压入一个全局执行上下文 当执行到函数时,就将函数的执行上下文压入栈中。函数执行完毕后就会将函数的执行上下文从栈中弹出。 每个执行上下文都...
阅读(29) 评论(0)

js的静态作用域

作用域规定了如何查找变量,也就是确定代码对变量的访问权限。js采用的是词法作用域,也就是静态作用域,是在定义阶段就决定好了的,而不是在执行阶段才决定的。var value = 1;function foo() { console.log(value); }function bar() { var value = 2; foo(); }bar();由于是静态作用域,因此在bar...
阅读(54) 评论(0)

js学习笔记:柯里化

柯里化是指将使用多个参数的函数转换成一系列使用一个参数的函数的技术。 柯里化的用途主要是参数复用,例如:function add(a, b) { return a + b; } add(1,2) //3在柯里化之后或许可以这样使用:var addCurry = curry(add); addCurry(1)(2); //3或许针对这种简单的将两个数相加的场景,柯里化显得有点多余。但是如果我...
阅读(36) 评论(0)

实现jQuery.each方法

参考JavaScript专题之jQuery通用遍历方法each的实现 $.each是一个通用的迭代函数,可以用来迭代数组与对象。$.each(arr,function(index,value){ …… })$.each(obj,function(prop,value){ …… })$.each()函数和 $(selector).each()是不一样的,那个是专门用来遍历一个jQue...
阅读(134) 评论(0)

js数组扁平化

参考自JavaScript专题之数组扁平化 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。var arr = [1, [2, [3, 4]]]; //扁平化之后:[1,2,3,4]; 递归 循环数组元素,如果还是一个数组,就递归调用该方法 function flatten(arr){ var res = []; for(var i...
阅读(76) 评论(0)

js中求数组的最大值与最小值

主要是利用Math.max()与Math.min()方法,这里统一以求最大值为例: 最原始的方法,循环: function max(arr){ var max = arr[0]; for(var i=1;i<arr.length;i++){ max = Math.max(max,arr[i]); } return max; } reduce 也是遍历...
阅读(69) 评论(0)

模块化之间的比较

CommonJS 是nodejs使用的模块化规范,一个单独的文件就是一个模块,加载模块使用require方法同步加载,该方法读取一个文件并执行,最后返回文件内部的exports对象。 //example.js exports.message = "hi"; exports.say = function (){ console.log("hello"); }; var exam...
阅读(45) 评论(0)

前端工程化

前端工程化是根据具体的业务特点,将前端的开发流程、技术、工具、经验等规范化、标准化。 它的目的是最大程度地提高前端工程师的开发效率。 模块化js模块化在ES6之前,JavaScript一直没有模块系统,这对开发大型复杂的前端工程造成了巨大的障碍。对此社区制定了一些模块加载方案,如CommonJS、AMD和CMD等。 现在ES6已经在语言层面上规定了模块系统,完全可以取代现有的CommonJS...
阅读(54) 评论(0)

flexbox布局实例

等高布局之前我们实现等高布局的方式通常是使用非常大的padding-bottom与负的margin-bottom,而使用flex也能轻松实现。由于align-items属性的默认值是stretch,也就是子项目会默认伸展来填满容器。 因此当我们设置了容器的height,或者某一子项目的height撑开了容器,那么所有子项目默认都会stretch成容器的高度,从而实现等高。n栏布局(grid布局)一...
阅读(23) 评论(0)

display: none;与visibility: hidden;的区别

都能使元素不可见,区别: display:none会让元素在渲染树中消失,不占用任何空间; visibility: hidden;则保留元素占据的空间,也依旧在渲染树中。 display:none是非继承属性,但由于元素在渲染树中消失因此子孙节点也会一并消失,通过修改子孙节点的属性也无法显示。 visibility: hidden;是继承属性,子孙节点消失是由于继承了hidden值,那么只要设置...
阅读(28) 评论(1)

有关http的那些事

http1.1与http1.0的区别 缓存处理 http1.0主要借助Expires、if-modified-since来进行缓存的判断。 http1.1中新增了Etag与if-none-match字段。 带宽优化及网络连接 http1.1在请求头中引入了range字段,允许只请求资源的某一部分,返回码是206 长连接 http1.1支持长连接,即在一个tcp连接上传送多个htt...
阅读(20) 评论(0)
236条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:49182次
    • 积分:2648
    • 等级:
    • 排名:第13687名
    • 原创:225篇
    • 转载:11篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论