自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(285)
  • 资源 (6)
  • 收藏
  • 关注

原创 var与let区别-详解块级作用域与局部作用域

1.1-js三种作用域介绍1.作用域概念(Scope) : 变量可以起作用的范围区域1.1 ES5 有两种作用域a.全局作用域(Global Scope) : 函数外面声明的变量,称之为全局变量。 可以在页面任何地方被访问全局变量生命周期 : 从页面加载 -> 到页面关闭b.局部作用域(Local Scope) : 函数里面声明的变量,称之为局部变量。 只能在函数里面被访问局部变量生命周期 : 从函数开始执行 -> 到函数执行结束1.2 ES6 在ES

2020-06-10 19:27:49 4968 8

原创 JS经典面试题05-变量连续声明var a = b = 1

函数里面声明的变量是局部变量,在函数外无法被访问。 怎么会有人出这么简单的面试题呢?1.1-答案揭晓1.2-原理解析 /*本题考点 a. 变量作用域 : 函数里面声明的变量是局部变量,无法在全局访问 b. 冷门知识点 : 变量如果没有使用var关键字声明,则没有作用域限制。 一定是全部变量(不标准语法) */ //声明函数 function fn() { /*变量连续赋值执行原理 ..

2020-06-10 12:03:06 1750 4

原创 JS经典面试题04-原型链Foo.getName

1.1-答案揭晓1.2-原理解析<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge">.

2020-06-08 10:21:46 929 2

原创 JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }

1.1-答案揭晓<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <t.

2020-06-08 10:18:39 414

原创 JS经典面试题02-只执行一次函数

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do.

2020-06-08 10:13:46 762 1

原创 JS经典面试题01-隐式类型转换

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>D.

2020-06-08 10:10:50 326

原创 ARSessionConfiguration报错问题

报错原因 : 在IOS11之后,ARSessionConfiguration被废弃了,需要使用ARConfiguration代替

2020-06-06 12:31:26 431

原创 网页性能优化04-函数节流

函数节流(throttle)1-函数节流介绍1.先理解什么是js中的高频事件高频事件 : 触发频率极高的事件。例如 滚动条事件onscroll 鼠标移动onmousemove 网页大小变化onresize等高频触发:事件本身不是高频的,但是用户可以通过很快的手速来触发。例如用户疯狂快速点击 抢购按钮(onclick,onmousedown)2.高频事件的危害a.浪费资源,降低网页速度,甚至导致浏览器卡死:由于高频事件触发非常频繁,可能1秒钟会执行几十次甚至上百次,如

2020-05-23 23:36:53 355

原创 网页性能优化03-函数防抖

1.1-函数防抖1.函数防抖介绍1.什么是函数防抖? (debounce)网上主流解释:函数防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。参考博客:https://www.jianshu.com/p/f9f6b637fd6c参考博客:https://segmentfault.com/a/1190000018445196笔者解释:先理解什么是抖动?:例如用户鼠标轻微晃动,快速划过某一个元素(用户本身不想触发,只是鼠标误触

2020-05-23 23:30:59 464

原创 网页性能优化02-懒加载工作原理

懒加载工作原理1.1-懒加载介绍(以图片懒加载为例)1.为什么要有懒加载技术(1)img标签特点:不管图片隐藏还是显示 有src属性都会去加载例如电商类网站,一个页面有几百张图片。有时候假设用户不滚动,也会加载图片资源,此时非常损耗网页性能(2)那么如果页面上有太多的图片 而且有些图片不在可视窗口内 如果加载了会影响页面的渲染页面时间。判断网页是否使用图片懒加载技术:滚动网页的时候,图片会动态加载(一般会有一个渐变动画,例如京东)2.如何实现懒加载技术核心原理:延迟

2020-05-23 22:33:37 315

原创 网页性能优化01-精灵图利弊与应用场景

网页性能优化01-精灵图精灵图:通过减少页面网络请求的数量,来提高网页加载速度1.1-精灵图介绍1.什么是精灵图精灵图就是就是将几张较小的图片放在一张大图上,这张大图称之为精灵图,又叫雪碧图(CSS Sprites)2.为什么要有精灵图?因为浏览器在渲染DOM树的时候,会把所有的外部资源路径(例如img标签的src属性作为网络请求,向服务器发送资源)例如淘宝网页,一个首页会有300多以上的请求,每一个请求都需要占用网络资源,无形中会降低网页加载速度3.精灵图的作用将

2020-05-23 21:55:13 849

原创 JS基础语法(07)-比较运算符隐式类型转换

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...

2020-04-29 22:52:20 370

原创 JS基础语法(06)-delete关键字两个作用

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...

2020-04-29 22:51:05 361

原创 JS基础语法(05)-in关键字三个作用

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...

2020-04-29 22:50:11 264

原创 axios04-文件上传

axios上传文件没有兼容性问题,还是使用以前的FormData原因: FormData会自动帮你设置请求头为:multipart/form-data;<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8" /> <meta http-equiv=...

2020-04-08 23:43:03 405 3

原创 axios03-解决请求头兼容导致跨域报错问题

1.老版本的后台接口post请求头是:application/x-www-form-urlencodedaxios不支持解决方案1.设置axios请求头为application/x-www-form-urlencodedheaders: {'Content-type': 'application/x-www-form-urlencoded'}2.将参数拼接为...

2020-04-08 23:41:06 5450

原创 axios02-其他使用方式(推荐)

推荐这种方式原因: 和以前的$.ajax()非常类似不同点: 使用promise技术处理异步操作结果axios({ url:'请求路径', method:'请求方式', data:{ post请求参数 }, params:{ get请求参数 }}).then(res=>{ //成功回调 //console.log(res)}...

2020-04-08 23:39:50 275

原创 axios教程01-基本使用流程

axios官网文档:http://www.axios-js.com/jQuery与axios对比jQueryaxios1.ajax技术底层原理XMLHTTPRequestXMLHTTPRequest2.体积大小大(包含大量dom操作与ajax)小(只有ajax请求)3.是否支持ES6的Promise不支持(底层使用其他方案模拟实现)支持基于原生P...

2020-04-08 23:37:09 1383

原创 ES6箭头函数中的this指向

1箭头函数中的this(1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this(2)箭头函数中的this指向 :访问上一个作用域的this说人话:函数在哪个作用域声明,this就是谁 (本质是通过作用域链访问上一个作用域中的this)(3)箭头函数与function函数this区别function函数 : 谁调用我,我...

2019-11-08 17:52:38 1022

原创 JS双向数据绑定的原理介绍

Document 您输入的文本是:{{ msg }} 点我修改文本 <script> function hmVue(obj) { //querySelector默认只会获取满足选择器条件的第一个元素 // vue的挂载点el...

2019-11-08 17:45:22 1539 2

原创 nodejs服务端MVC架构介绍

nodejs服务端MVC架构介绍MVC架构本质:确定每一个js文件的职责以nodejs数据管理系统为例,本文章代码仅为服务端演示代码,单独复制粘贴可能无效果。因为MVC并不是一门技术,而是一种项目架构思想index.js:负责接收请求router.js:负责将请求分发给C层controller.js:C层负责处理业务逻辑(V与M之间的沟通)views:V层:负责展示页面model:...

2019-10-21 23:49:40 3396

原创 Express中间件工作原理介绍

Express中间件工作原理介绍中间件是Express框架学习中最难的部分,同时也是最为核心的技术,我们的学习路线如下1.什么是中间件2.Express中间件的本质及工作原理3.自定义解析post请求参数的中间件4.第三方中间件使用1.1-什么是中间件下图是一个自来水净化的过程,这张图可以更好的理解什么是中间件水库的水并不是直接取出来就送到用户的家中使用,而是经过一些净...

2019-10-21 23:43:08 1336

原创 RSA完整加密流程总结

RSA完整加密流程总结1.1-RSA加密介绍1.RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。2.RSA是目前最有影响力和最常用的公钥加密算法,它...

2019-10-21 23:32:53 12615 4

原创 JS基础语法(05)-隐式数据类型转换

1.为什么要有隐式类型转换?当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算2.什么是隐式类型转换:编译器自动转换本小节知识点1.转成string类型:+号两边如果有一边是字符串,则会把另一边转换成字符串,然后进行拼接2.转成number类型:以下几种运算符会将任何数据转换成numb...

2018-06-15 00:18:33 853 2

原创 JS-数据属性与访问器属性

数据属性与访问器属性1.对象属性的作用主要是数据的存储2.既然数据存在存储,则会有增删改查相关操作(增加属性,修改属性值,获取属性值,删除属性)3.数据属性用于控制属性的增删改查特征4.访问属性用于监听属性的存储过程,可以限制属性的行为(限制属性的读写,实现对象观察者模式,M与V双向绑定等)1.1-数据属性1.2-访问器属性1.1-数据属性/** 数据属性 *///...

2018-06-14 13:58:06 1281

原创 JS基础语法(04)-逗号运算符

1.逗号运算符: ,2.逗号表达式:(表达式1,表达式2,表达式3.............)通常与小括号一起使用,逗号用于连接算式,逗号3.运算规则:(1)逗号运算符连接的每一个式子都会执行(2)逗号运算式的结果是最终一个式子的结果/** * 1.逗号运算符: , * 2.逗号表达式:(表达式1,表达式2,表达式3.............) ...

2018-06-14 13:49:39 2835 9

原创 JS基础语法(03)-前自增与后自增区别

/*前自增与后自增的异同点 相同点:无论是前自增还是后自增,对于变量而言,没有区别,都是自身+1 不同点: * 前自增:先+1(变量自身+1),后赋值(将变量的值赋值给自增表达式的结果) * 后自增:先赋值,后+1 *///1.前自增 var num1 = 10 var res1 = ++ num1//res1是前自增...

2018-06-14 13:44:16 2724 1

原创 JS基础语法(02)-JS的转义符

转义符: \ 改变原来符号的作用就叫转义符/** * 转义符: `\` 改变原来符号的作用就叫转义符 * \&quot; :输出双引号 * \t:水平制表符,说人话就是多打几个空格 * \n:换行符 * \\:显示一个\ * */ console.log ( &quot;出来混了\\那么多年,从最开始的3万,到...

2018-06-14 13:41:05 799

原创 js基础语法(01)-JS中+号的三种含义

01-JS中+号的三种含义(1)数学意义上的相加 : 1 + 1 会得到: 2(2) 数学意义上的正负号: +5 正数 作用:可以把string类型转换成number类型(3)字符串的连接符:‘我爱你’ + ‘中国’ 会得到: ‘我爱你中国’ //1.当 + 号的两边都是number类型的时候,此时 + 号 代表数学符号加法 //常见用法: 代...

2018-06-14 13:38:03 4828

原创 Nodejs项目部署阿里云完整流程

nodejs项目部署阿里云完整流程参考文档:http://blog.csdn.net/chenlinIT/article/details/73343793细节注意:1.启动nodejs服务需要开启两个阿里云主机窗口,一个是数据库mongoose服务,一个是nodejs服务器 2.如果nodejs服务器监听你的阿里云主机ip失败,可以尝试使用0.0.0.0。(因为阿里云限制了端口号的,官方

2018-01-11 19:37:34 31757 16

原创 input标签获取图片文件尺寸

思路分析 (1)给input标签设置一个onchange事件 当input标签的type属性为file时,我们可以给该input标签设置一个onchange事件来监听文件选择的变化(2)在onchange事件中使用FileReader读取选取文件的信息 FileReader类支持异步读取input标签文件信息(大小,时间,数据等)(3)使用一个img标签来显示获取的图片(如果不需要显示可以

2017-12-02 23:05:12 7096 5

原创 nodejs接收post请求参数

nodejs接收post请求参数1.1-浏览器发送post请求参数的方式1.2-服务端接收post请求参数的方式post请求参数不直接在url路径中拼接,而是放在请求体中发送给服务器请求三要素:请求行、请求头、请求体1.1-浏览器发送post请求参数的方式post请求参数不能直接在url路径中拼接,所以一般使用ajax请求来发送post请求参数 通常都是提交form表单数据使用post请

2017-11-30 23:23:46 50641 17

原创 nodejs接收get请求参数

nodejs接收get请求参数1.1-浏览器向服务器发送get请求参数的两种方式1.2-服务端使用url模块解析get请求参数在http协议中,一个完整的url路径如下图通过下图我们可以得知,get请求的参数是直接在url路径中显示。get的请求参数在path资源路径的后面添加,以?表示参数的开始,以key=value表示参数的键值对,多个参数以&符号分割 hash部分表示的是资源定位符(

2017-11-30 23:20:23 17574

原创 mongoose设置unique不生效问题解决

1.unique属于schema约束验证中的一员,他的作用主要就是让某一个字段的值具有唯一性(不能重复)2.保持字段的唯一性使用type值:{type:String,unique:true,dropDups: true}3.mongoose一旦修改了数据存储的机构,数据库一定要重启,很多新手在设置一些属性不生效时都是这个原因这里说的重启,不是简单的关闭mongoose数据库服务器重新打开,而是先

2017-11-05 19:23:50 7634 4

原创 nodejs中art-template模板语法冲突解决方案

art-template的github地址:https://github.com/aui/art-template前端开发中,有非常多的模板引擎第三方框架,其中art-template属于写的比较好的一个,一般的模板引擎第三方都会支持一到两种模板语法,最常见的就是大胡子语法{{ }}和尖括号语法<%= %>本篇文章主要介绍一下在nodejs中,art-template如何解决模板引擎语法冲突1

2017-11-05 17:36:23 4909 8

原创 06-Wifi通讯流程总结及源码下载地址

Demo下载地址:http://download.csdn.net/download/u013263917/9934583Wift通讯的本质就是使用Socket建议UDP连接1.手机与硬件设备连接同一wifi2.wifi路由器(服务端)开始监听局域网上某一端口号此时简历Socket通讯管道。Socket=服务端ip地址+监听的通讯管道3.客户端开始连接服务端连接服务端的IP地址和端口号,与服

2017-08-15 15:09:18 1798 2

原创 05-WIFI通讯客户端搭建

WIFI通讯客户端搭建客户的职责主要做三件事,一:连接服务端 二:接收来自服务端的数据 三:给服务端发送数据[1.0-准备工作][1.1-客户端连接服务端][1.2-客户端接收和发送数据到服务端][1.3-完整代码及示例演示]1.0-准备工作笔者搭建了一个简单的界面,主要功能就是客户端连接服务端监听的网络,连接成功之后可以给服务端发送数据1.1-客户端连接服务端1.创建客户端So

2017-08-15 14:54:06 1597 4

原创 04-WIFI通讯服务端搭建

WIFI通讯服务端搭建服务端的职责主要做两件事,一:监听socket网络中的端口 二:将某一个客户端的发送过来的消息转发给其他客户端客户端是无法直接和客户端通讯的,需要经过服务端的转发其他一些开发中细节笔者将会在代码注释中写明[1.0-准备工作][1.1-服务端监听网络端口][1.1.1-关于端口号的说明][1.2-服务端接收客户端消息并转发][1.3-完整代码及示例演示]1.0-准备工作笔者首先

2017-08-14 09:20:03 1675

原创 03-WIFI通讯获取Wifi名称及ip地址

在上一小节中,笔者在介绍wifi通讯流程中介绍到,wifi通讯的本质就是由路由器(wifi芯片)担任局域网服务器来实现多个客户端之间的数据转发,所以第一步我们的服务器需要去监听局域网内的端口号,而要想实现这一过程我们首先需要做两件事1.检测客户端(手机)有没有连接wifi,如果没有连接wifi的话,是不能够实现通讯的2.需要获取服务端(服务器)在局域网内的ip地址,因为如果不知道服务器的ip地址,

2017-08-13 23:33:47 2606

原创 02-Wifi通讯架构介绍

1.1-Wifi通讯的定义1.2-Wift通讯的三种经典场景1.3-Wifi通讯流程1.4-wifi通讯原理废话不多说,有图有真相由于笔者之前的wifi硬件没有备份,离职之后被公司回收,所以这里我使用笔者的MAC电脑作为服务器,笔者的iPhone6S手机作为客户端演示wifi通讯0301.gif1.1-Wifi通讯的定义利用wifi信号,是智能手机(iPhone)与硬件设备进行通讯的方式,称之为W

2017-08-13 01:31:08 4604

wifi通讯ios

iOS端Wifi通讯开发demo

2017-08-15

ARKit开发从入门到精通 源码 下载

1.ARKit自定义实现 2.ARKit实现平地捕捉 3.ARKit实现物体跟随相机移动 4.ARKit实现物体围绕相机旋转

2017-06-13

ARKit自定义实现 完整项目实例源码下载

自定义实现ARKit,手动搭建ARSession,点击屏幕添加3D虚拟物体

2017-06-11

iOS原生人脸识别

iOS原生人脸识别的使用,CoreImage框架中CIDetector类的介绍

2017-02-10

iOS10通知及通知拓展Extension使用

iOS10通知及通知拓展Extension使用的小Demo,里面详细记录了iOS10通知的新框架使用,以及iOS如何给应用程序添加拓展Extesion的使用

2017-02-09

AutoLayout

一款非常好用的AutoLaypout适配的分类,薄薄的封装既可以满足所有的autolayout适配,又可以更加清晰看到底层的原理实现,对掌握autolayout的思想非常有益

2014-12-31

空空如也

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

TA关注的人

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