自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (3)
  • 收藏
  • 关注

原创 前端面试题(三)执行上下文 & 闭包 & 深浅拷贝

执行上下文当执⾏ JS 代码时,会产⽣三种执⾏上下⽂ 全局执⾏上下⽂ 函数执⾏上下⽂ eval 执⾏上下⽂ 每个执⾏上下⽂中都有三个重要的属性 变量对象(VO),包含变量、函数声明和函数的形参,该属性只能在全局上下⽂中访问 作⽤域链(JS 采⽤词法作⽤域,也就是说变量的作⽤域是在定义时就决定了) thisvar a = 10function foo(i) { var b = 20}foo()对于上述代码...

2022-02-21 15:00:54 380

原创 前端面试题(二)原型 & new & instanceof & this

前端面试题(二)原型 & new & instanceof & this

2022-02-17 14:49:48 562

原创 前端面试题 (一)JS内置类型&Typeof&类型转换

前端面试题中的关于 JS内置类型&Typeof&类型转换

2022-02-16 14:50:48 655

原创 ES6和ES5数组的方法 reduce map filter some every

数组的方法 ES5 forEach reduce map filter some every es6 find findIndex

2021-12-01 17:24:02 127

原创 ES6之class

ES6之class

2021-12-01 15:57:14 305

原创 es6之proxy

es6之proxy

2021-12-01 15:56:12 157

原创 Object.defineProperty 拦截器使用以及实现vue数据拦截

Object.defineProperty 拦截器使用以及实现vue数据拦截

2021-12-01 15:54:23 555

原创 ES6之set

es6 set使用方法

2021-12-01 15:47:32 270

原创 es6之...扩展运算符和实现深拷贝

es6之...扩展运算符和实现深拷贝

2021-12-01 15:45:02 606

原创 手写promise 库 分析其原理

用es6手写promise库 分析其原理和特性

2021-12-01 15:25:13 364

原创 js检测浏览器缩放百分比方法

detectZoom (){ var ratio = 0, screen = window.screen, ua = navigator.userAgent.toLowerCase(); if (window.devicePixelRatio !== undefined) { ratio = wind...

2019-12-26 09:34:43 2357

原创 JS关于作用域和闭包的理解

说一下对变量提升的理解 变量定义 函数声明(注意和函数表达式的区别)说明this几种不同的使用场景作为构造函数执行 作为对象属性执行 作为普通函数执行 call apply bind创建10个<a>标签,点击的时候弹出来对应的序号var ifor(i=0;i<10;i++){ (function(i){ var a = ...

2019-06-08 16:50:12 573

原创 关于JS原型和原型连的理解

1.如何准确判断一个变量是数组类型var arr = []arr instanceof Array //truetypeof arr //object, typeof是无法判断是否是数组的2.写一个原型链继承的例子function Elem(id){ this.elem = document.getElementById(id)}Elem.prototype.ht...

2019-06-08 14:28:38 534

原创 MongoDB: 用户的创建、删除与修改和数据的备份和还原(十)

安装好MongoDB时,它为我们默认开了一个最高管理权限方便我们管理数据库,我们可以用mongo链接数据库,就是这个原理。但在实际开发中并一般不能使用这个用户,因为大家都知道和最高权限的原因,安全性和可靠性都不适合,所以要对MongoDB的用户进行管理。这次我们就学习一下MongoDB的用户管理。创建用户:首先要进入我们的admin库中,进入方法是直接使用use admin 就可以。进入后...

2018-12-07 10:48:02 711

原创 MongoDB: 索引和复合索引以及全文索引(九)

集合中已经有了200万条的数据,可以进行索引的操作了。我们先来建立一个索引,然后看看它的查询性能到底提升了多少倍。这个不会很难,主要掌握索引的建立方法即可。普通查询性能我们先制作一个普通查询,随便查找一个用户名,并计算出查询和打印的时间,因为有200万条数据,所以性能不会很高。var startTime = new Date().getTime() //得到程序运行的开始时间va...

2018-12-07 10:35:45 1085

原创 MongoDB: 构造百万级数据(八)

索引的性能提现必须要有大量数据才能看出来,你说你有10条20条数据,这是根本看不出来效果的,这次就通过随机数的方法,创造出一个百万级数据的数据库出来。安装Node为了调试代码方便,我们安装Node,用来在终端中执行js,查看结果。Node下载地址:https://nodejs.org/en/ (直接下载LTS版本就可以了)安装非常简单,只要会安装QQ,就应该可以安装上,一直下一步也...

2018-12-07 10:20:52 2356

原创 MongoDB:find的数组查询和参数使用方法(七)

完善数据以前的我们的workmate集合对数组涉及还很少,现在在数据中加入了兴趣(interest),并且给每个人加入了一些兴趣,比如有写代码,做饭,看电影…..当然这些数据你可以自己随意构建,但是如果你不想自己费事费脑,这里也为你准备好了数据,你只要把以前的表删除(drop)掉,重新载入(load)就可以了。var workmate1={ name:'JSPang', ...

2018-12-07 10:12:44 13465 1

原创 MongoDB: find的不等修饰符和多条件查询(六)

在学习之前我们需要构造更多的数据到集合,这样才能更好的讲解查询条件,下面代码你可以直接复制进行添加。当然你也可以自己随意加一些数据到集合中,只要方便我们学习就可以了。var workmate1={ name:'hejian', age:33, sex:1, job:'前端', skill:{ skillOne:'HTML+CSS', ...

2018-12-07 09:52:50 3437

原创 MongoDB: update数组修改器与状态返回与安全(五)

$push追加数组/内嵌文档值$push的功能是追加数组中的值,但我们也经常用它操作内嵌稳文档,就是{}对象型的值。先看一个追加数组值的方式,比如我们要给小王加上一个爱好(interset)为画画(draw):db.workmate.update({name:'xiaoWang'},{$push:{interest:'draw'}})当然$push修饰符还可以为内嵌文档增加值,比如...

2018-12-06 15:39:51 971

原创 MongoDB:Update常见错误和update修改器(四)

如果你有过关系型数据库的经验,你会很容易犯只修改需要改变的一项,因为在关系型数据库中就是这样作的。先来准备一些数据,这些数据模拟了一个软件开发小组的组成(当然这不能当真)。var workmate1={ name:'HeJian', age:18, sex:1, job:'前端', skill:{ skillOne:'HTML+CSS'...

2018-12-06 15:22:24 4205

原创 MongoDB: 用js文件写mongo命令和批量插入的正确方法(三)

把命令写入JS中: 现在模拟一个用户登录日志表的信息,用JS进行编写。新在一个新建的目录下,新建一个goTask.js文件。文件内容如下:goTask.js文件var userName="jspang"; //声明一个登录名 var timeStamp=Date.parse(new Date()); //声明登录时的时间戳 var jsonDd...

2018-12-06 14:58:53 3720 1

原创 MongoDB基本命令(二)

MongoDB的存储结构 以前我们的关系型数据库的数据结构都是顶层是库,库下面是表,表下面是数据。但是MongoDB有所不同,库下面是集合,集合下面是文件,可以看下面这张图进行了解一下。基础Shell命令:show dbs :显示已有数据库,如果你刚安装好,会默认有local、admin(config),这是MongoDB的默认数据库,我们在新建库时是不允许起这些名称的。 use a...

2018-12-06 14:35:53 152

原创 mac电脑安装MongoDB和运行(一)

首先MongoDB提供了OSX平台上64位的安装包,你可以在官网下载安装包下载地址:https://www.mongodb.com/download-center#community接下来我们使用curl命令来下载安装# 进入 /usr/localcd /usr/local#下载sudo curl -O https://fastdl.mongodb.org/osx/mongo...

2018-12-06 14:18:56 1837

原创 webpack核心概念详解及其运行原理

* Entry: 入口, webpack执行构建的第一步将从Entry开始,可抽象成输入* Module: 模块,在webpcak中一切皆模块,一个模块对应一个文件。webpack会从配置的Entry开始递归找出所有依赖的模块。* Chunk: 代码块,一个Chunk由多个模块组合而成,用于代码合并于分割*Loader: 模块转换器,用于将模块的原内容按照需求转换成新内容。*Plu...

2018-08-06 10:20:47 1215

原创 vue生命周期及其应用场景

2018-06-28 14:58:45 4541

原创 react生命周期总结

挂载阶段的组件生命周期constructor : 关于组件自身状态的初始化工作都会放在其中componentWillMount: 组件挂载开始之前,也就是在组件调用render方法之前调用(一些组件启动的动作,包括Ajax数据的拉取操作、一些定时器的启动)componentDidMount: 组件挂载完成以后,也就是DOM元素已经插入页面后调用componentWillUnmount: 组件对应的...

2018-06-28 14:56:03 140

原创 ES6教学(二)

首先如果大家没看过我的es6基础教学一的同学可以去看一下,因为es6的转换需要搭建环境,这我在一里面有讲到这是地址https://blog.csdn.net/hejiancsdn/article/details/80576425大家有兴趣可以去看一下一 新的声明方式var声明:var是在es6里是用来升级全局变量的,我们可以先做一个简单的实例,用var声明一个变量a,然后输出一下var a = '...

2018-06-12 15:43:40 150

原创 ES6教学(一)

虽然现在很多浏览器已经支持ES6,但是还是有一些浏览器不兼容,所以我们在使用ES6语法时,还是要搭建一下环境。一 搭建ES6开发环境  建立工程目录:         我们首先建立一个工程目录,并且在根目录下建立两个文件夹:src和dist          src:书写ES6代码的文件夹,我们所写的js都放在这里面          dist:我们利用babel编译成es5代码的文件夹,在htm...

2018-06-05 09:48:11 679

原创 Vue 双向绑定的原理

Vue双向绑定的原理大致思路: 首先Vue会使用documentfragment劫持根元素里包含的所有节点,这些节点不仅包括标签元素,还包括文本,甚至换行的回车。 然后Vue会把data中所有的数据,用defindProperty()变成Vue的访问器属性,这样每次修改这些数据的时候,就会触发相应属性的get,set方法。 接下来编译处理劫持到的dom节点,遍历所有节点,根据nod

2018-05-29 14:32:02 240

原创 解决iframe中fixed失效的问题

1.开始先说几句废话,刚开始是因为公司有一个老项目需要添加一个底部的导航栏,这个导航栏需要一直悬挂在底部,刚开始以为很容易,结果接触那个项目的时候才知道那个项目是iframe里面嵌套iframe,非常恶心。结果就有了这个问题,好了废话不多少了,直接上代码,因为公司的项目代码太杂,所以我自己写了一个案例供大家参考。1.首先说一下案例效果,我会在a页面中嵌套b页面,让b页面中的导商条固定定位在a页面的...

2018-05-29 14:29:48 4975 2

原创 h5如何做微信公众号支付

上个周老大让我去做微信公众号支付,因为之前没有做过,所以看了一下微信公众号支付。其实前端做微信公众号很简单。废话不多说,直接先说一下思路,首先做支付需要前端或者后台去获取微信的code,这里是由我去做的,然后将拿到的code传给后台后台会返会给你微信需要的参数,然后将这些参数传给微信就ok了第一步   点击支付按钮掉支付接口这是点击支付按钮之后的代码,你只需要将里面的appid换成你们的a

2018-01-29 10:38:43 2371

原创 jquery新手入门教学(四)

主要讲解了事件绑定和ajax

2017-11-07 15:08:13 568 1

原创 jquery新手入门教学(三)

上两篇文章主要说的是选择器和一些简单的DOM操作,接下来我们来看一下jquery的事件绑定和一些动画方法;

2017-11-07 14:45:03 372

原创 jquery新手入门教学(二)

jQuery过滤选择器符号说明用法:eq(index)index是从0开始的一个数字,选择序号为index的元素。选择第一个匹配的元素。$(“li:eq(1)”). css(“background”,”red”):gt(index)Index 是从0开始的一个数字,选

2017-11-07 14:23:23 240

原创 jquery新手入门教学(一)

让人伤心的JS回顾1、代码繁琐,并且代码量大2、浏览器兼容性问题3、代码容错性差4、动画效果太难写了jQuery抚平你受伤的内心会帮我们解决前面所遇到的问题。jQuery是什么jQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率。 Javascript跟jQuer

2017-11-07 10:25:53 648

转载 快速学习JS的思考方法、有用

当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战:有些概念容易混淆,特别是当你学习过其他语言的时候。很难找到学习的时间(有时候是动力)。一旦当你理解了一些东西的时候,却很容易再一次忘记。可以使用的工具甚多且经常变化,所以不知道从哪里开始入手。幸运的是,这些挑战最终都可以被战胜。在这篇文章里,我将介绍 6 个思维技巧来帮你更快的学习 JavaSc

2017-11-06 20:41:25 229

转载 一次完整的HTTP请求是怎样的

一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准来实现的话,那么它一定是通用的。HTTP请求格式HTTP请求格式主要有四部分组成

2017-11-06 20:30:53 486

转载 用CSS3设计响应式导航菜单

HTML代码   下面是导航的HTML代码。标签用于创建伸展条,包含绝对定位的css属性。我会在稍后解释这一点,current类表示当前激活的菜单链接。[html] view plain copynav class="nav">      ul>          li class="current">a href="

2017-11-06 20:15:19 381

转载 js对象、继承,原型链相关知识及应用心得

js是一门面向对象(Object-oriented,OO)语言,去年看《javascript高级程序设计》的时候,已经系统的学习了js对象相关的知识,但是当时好像偷了懒,学完觉得很清晰,就没有做笔记。现在到了成都,新工作中普遍使用面向对象的思想,在实践中又加深了理解,但是一些理论基础还是有些遗忘了。所以在此特意复习回顾一下,做做笔记。这里没有引用很多书面语,而是以我自己学习和实践为基础,写出对js

2017-11-06 19:59:18 174

转载 JavaScript的变量作用域和闭包操作

JavaScript的闭包变量的作用域:每个函数来定义作用域,函数内部用var来声明的,他们的作用域只在本函数内有用。函数可以用来创造函数作用域。此时的函数像一层半透明的玻璃,在函数里面可以看到外面的变量,而在函数外面无法看到函数里的变量。我们先来看一个例子,在例子中我们定义了三个函数,分别是funa ,funb,func,在每个函数里我们都用 var独自声明了

2017-11-06 19:32:46 125

Concurrent.Thread.js javascript多线程

一个日本人写的javascript多线程类。可以解决很多单线程问题。资源中包括详细的注解

2018-09-25

解决iframe中fixed失效的问题

这是一个解决fixed在iframe中失效的解决案例,只要把文件放到编辑器中打开即可看到效果

2018-05-31

vue.js入门视频

vue+vuex+webpack+ES6+node从入门到实战视频,附加前端面试题。从入门到实战。

2018-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除