实现网站变灰
css实现网站变灰
1 | html { |
css实现网站变灰
1 | html { |
防抖和节流在前端性能优化中很常用,防抖和节流都是对一段时间内事件触发函数执行频率的控制;使用场景就是当频繁事件时怎样去处理函数执行。
在限定时间内,如果事件再次触发,丢弃当前已响应的函数执行,以当前事件响应函数重新计时
1 | function debounce(fn, wait) { |
以前看Tom大叔的深入理解JS系列介绍的很在错,但这篇文章短而好懂,mark一份。
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈、全局对象、执行环境、变量对象、活动对象、作用域和作用域链等,这些概念正是JS引擎工作的核心组件。这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的demo来展开分析,全局讲解JS引擎从定义到执行的每一个细节,以及这些概念在其中所扮演的角色。
1 | var x = 1; //定义一个全局变量 x |
这个demo是一个闭包,执行结果是4,下面我们将分全局初始化、执行函数A、执行函数B 三个阶段来分析JS引擎的工作机制:
ES6原生提供了Promise对象,高版本的nodejs可以直接使用,服务器端的开发中借住babel工具也可以使用,但是如果直接用到浏览器中,兼容性还是个问题。试下了最新的firefox和chorme浏览器都支持了,为了安全还是老老实实用jquery提供的Deferred对象吧。Promise能实现的功能$.Deferred也能实现。
在写基于express、vuejs博客的小项目过程中,折腾了下在vuejs中怎么使用浏览器缓存请求。
原理是利用vue-resource拦截器interceptor,判断当前请求是否存在localStorage里,有则返回缓存的内容;没有则请求服务器,并在localStorage写入缓存。
用到的依赖包:
详细代码在https://github.com/liukaijv/lnode-blog/tree/master/frontend。
其实react涉及的内容并不是很多,把react API整理了一下,版本为0.14.7。
面试中常考的题,把想到的方法都整理一下,代码如下:
1 | <ul id="list"> |
1 | var list = document.getElementById("list"); |
上面这段代码的意图是创建5个li,点击不同的li能够打印出当前li的序号。但是点击任何li打印出来的都是“列表 6 被点击“,因为i是函数级变量,5个内部函数都指向了同一个i ,而i最后一次赋值是5,当点击时i已经是6了。
写模态框时,当模态框show的时候动画没有,原来是元素有display:none时添加样式里css3的变幻效果无法生效,解决的方法总结,测试代码如下:
1 | .modal{ |
1 | <a href="javascript:" id="trigger" data-target="#model1">运行动画</a> |
写这个博客文章列表标题时遇到的bug,当flex和white-space、overflow一起用的时候,发现overflow:hidden失效了。代码如下:
1 | flex: 1; |
解决办法:再加上min-width: 0属性。
1 | flex: 1; |
用jquery的ajax方法上传文件到七牛和常规的ajax有点区别,直接上代码:
1 | var $input = $('#upload-qiniu'); |
lodash sortBy的用法
数组对象:
1 | var tags = [ |
以post_count升序排序:
1 | tags = _.sortBy(tags, function(item){ |
以post_count降序排序,排序项加个负号:
1 | tags = _.sortBy(tags, function(item){ |
做微信开发中发现window.close失效,不能关闭浏览器,解决如下:
1 | function closeWindow() { |
js中当函数不加括号时可以把函数当成值传递。
无参数:
1 | // 无参函数 |
有参时需要用一个匿名函数:
1 | function foo (arg1, arg2) { |
在Javascript 中,只有在一些极少数情况下才会因为类型错误而抛出一个异常,大多数情况会偷偷的把类型转换了,这就是所谓的“隐式类型转换”,js中的基本类型有:string、number、boolean、object、symbol、undefined、null,其中object为引用类型。不同类型的变量比较或运算时会产生隐式类型转换。
+号可以当算术运算符也能当连字符号,使用+情况为:
1 | // 只要有一个类型为string,另一个也会转为string |