- 博客(27)
- 收藏
- 关注
原创 es6+以后,数组去重的新花样?你学会了吗?
没有es6+之前,数组去重以来for循环和indexOf实现。es6+之后实现了代码简单,易懂,实用。这就是es6+的魅力所在,简化代码,实现了复杂功能。扩展一下,利用sort函数实现排序。以上几种方法比较常用,建议一定要会使用,如有问题欢迎交流。利用新增set数据结构类型 set结构不允许有重复值。1.双重for循环去重 代码繁多,性能不佳。* 双重for循环去重 代码繁多,性能不佳。redeuce高阶方法值得使用,扩展一下。2.升级一下,简化下代码实现。方法多多,适合做好。
2024-08-28 16:54:06
358
原创 跨域产生的根本原因,以及结局跨域的常用方法
这点毋庸置疑,由于浏览器发送请求(同源请求,异源请求==请求源),服务器端返回请求(目标源),浏览器接受返回后进行验证,验证通过则可以获取完成。理解了同源策略后,验证这个阶段就会判断是不是同源,从而,验证通不通过,就是跨域问题产生的根本所在。我们都知道浏览器具有同源策略,这就是使得每一种浏览器向服务器请求的过程中就产生了跨域的问题。预检询问是否可以请求,如果可以发送真实请求(也就是简单请求)。流程:浏览器------代理-------服务器。请求ajax(同源请求),不会产生跨域;
2024-08-10 12:51:47
276
原创 vuex使用----对比----redux使用
随着项目的日益增大,维护状态,成为了一件必须且比较繁琐的事情。出现了很多优秀了状态管理工具,数据管理,组织state让我们一起来看下,vue中使用vuex和react中使用redux有什么区别。vuex参考链接:https://vuex.vuejs.org/zh/要想使用vuex,在你的项目目录下执行如下命令。第一步:下载依赖包vuex npm install -...
2019-09-22 11:32:15
350
原创 带你了解------发布订阅者模式的步步进化,层层递进的实现
发布订阅者模式进化论基础版本第一步进化—仅订阅需要信息第二步进化—通用型发布订阅第三步进化—解耦发布者和订阅者关系第四步进化—命名空间(防止代码越来越复杂,形成的全局冲突)PS:发布订阅者模式可以先订阅,也可以先发布发布订阅者模式的基础版只要你绑定过DOM事件,你就已经是一个接触过发布-订阅模式的开发者。接下来一起来看看进化后的模式,如何带来更大的便利。// 最简单的发布订阅...
2019-09-21 12:08:43
350
原创 前端需要的这些你都学会了吗?
必备之学习/** * 前端学习 * 1、javascript * 2、ES6 * 3、设计模式 * 4、算法 * 5、html、css、html5、css3 * 6、前端安全 * 7、http、https、ajax、git * 8、vue、vuex、weex、react、redux、taro、uniapp、miniprogram、electron * 9、架构 * 10、n...
2019-09-20 20:33:54
222
原创 分享一一一京东taro实现购物车...........
taro成熟了嘛?坑还多吗?逻辑实现:a、点击全选,实现全选b、单选c、单选全部选择完时,全选自动勾选d、全选后,取消一个单选的,则全选自动取消e、自动计算订单金额此坑踩了良久啊!直接上代码,作为参考把!import Taro, { Component } from '@tarojs/taro';import { connect } from '@tarojs/redux'...
2019-09-19 17:40:43
1595
原创 带你了解js中得函数
函数得隐藏属性1、argumentsarguments在函数重载和高阶函数中会反复用到。函数重载:函数名相同,函数的参数列表不同(包括参数个数和参数类型),根据参数的不同去执行不同的操作。 举例: function overload(a){ console.log('一个参数') } f...
2019-09-16 17:01:03
123
原创 运行环境检测
运行环境检测1、能力检测,并不是浏览器检测2、怪癖检测:浏览器的特殊行为3、用户代理检测:通过检测用户代理的字符串检测客户端4、识别window5、手机识别完整代码:var client = function(){ //呈现引擎 var engine = { ie:0, gecko:0, webkit:0, ...
2019-09-11 19:21:53
1071
原创 一步步完成vuex+plugins的分层配置[随着组件拆分,后期继续。。。]
vue+webpack+vuex+sass+postcss的项目配置1、基础步骤不在一步步展示首先下载项目依赖:vuex **npm install --save vuex**2、项目目录结构如下:3、新建store文件夹,并新建actions.js getters.js mutations.js state.js type.js index.js文件。4、构...
2019-09-06 15:49:27
914
原创 实现多个页面之间通信的常用方式
websocket协议localstoragehtml5浏览器的新特性1、websocket 全双工(full-duplex)通信自然可以实现多个标签页之间的通信,相信网上通过websocket实现聊天室的教程也不少(用来实现双向通信,客户端和服务端实时通信)//初始化一个node项目:node init,一路确认就可以,文件夹会自动创建一个package.json文件监听/...
2019-09-03 14:42:28
4078
原创 js数组之常用操作方法
想要理解一点东西,就必须用自己的语言和思想把一个东西表达出来才行。下面我们一起来看看数组常用的操作方法都有哪些,怎么去使用。1、Array.forEach()将数组中的每个元素执行传进提供的回调函数,此方法没有返回值,直接改变原数组,注意和map方法区分 let arr = [1, 2, 3, 4, 5] num.forEach(x => x*2) // arr ...
2019-09-03 14:10:23
146
原创 js之常用设计模式详解
一、单例模式定义保证一个类仅有一个实例,并提供一个访问它的全局访问点核心确保只有一个实例,并提供全局访问实现假设要设置一个管理员,多次调用也仅设置一次,我们可以使用闭包缓存一个内部变量来实现这个单例function SetManager(name) { this.manager = name;}SetManager.prototype.getName = f...
2019-09-02 16:51:43
211
原创 使用react-saga来管理store中的effects
API接口的阻塞和非阻塞/** * 同步call(阻塞,必须完成一个,才能继续下一个yield) * 异步fork(无阻塞) * * * 监听未来的action take * */阻塞 / 非阻塞名称 阻塞takeEvery 否takeLatest 否takeLeading 否throttle 否take 是take(channel) 有时 (请查看 A...
2019-08-30 11:49:21
988
原创 react、taro事件处理之间区别
1、taro创建自定义组件中,事件处理函数的方法与this:class Toggle extends React.Component { constructor(props) { super(props); this.state = {isToggleOn: true}; } onClick = (e) => { e.stopPropagation(...
2019-08-29 16:44:24
1277
原创 Class之语法注意事项
1、静态方法2、实例属性的新写法3、静态属性4、私有方法和私有属性5、new.target 属性类的由来,JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString...
2019-08-29 16:19:44
637
原创 BOM对象得详细解析
1、BOM核心对象是window标识一个浏览器的实例,也是js访问浏览器窗口的一个接口!有事ES规定的一个Global对象。全局变量不能通过deleted删除。直接在window上定义属性可以删除。 var age = 18; window.color = "red"; //在IE < 9 时抛出错误,其他浏览器返回false deleted window....
2019-08-29 14:39:57
298
原创 nodejs模块及其作用
1、nodejs 模块及其作用assert 为应用程序的单元测试添加断言处理buffer 用于二进制数据的存储与转换url 用于实现URL字符串的解析与格式化events 用于为事件处理提供一个基础类fs 用于操作文件及文件系统path 用于处理文件...
2019-08-27 09:38:37
1070
原创 java之IntellijIdea 2018.2工具使用
安装以及破解java工具IntellijIdea准备工作下载安装包 以及 替换文件 idea64.exe.vmoptions、idea.exe.vmoptions和ActivationCode文件,并安装idea!GitHub地址:https://github.com/flyku/javaIntellijIdea.git第一步:安装 Intellijidea第二步:破解 1、打开安装...
2019-08-27 09:33:38
451
1
原创 理解闭包
关于javascript闭包中的this对象我们知道,this对象是运行时基于函数的执行环境绑定的: 在全局函数中, this等于window,而当函数被作为某个对象的方法调用时, this等于那个对象。《 Javascript高级程序设计》在下面的例子中, 理解闭包中的this对象。复制代码```***var name = "The Window";var object = ...
2019-08-25 14:23:08
112
原创 深刻理解React和Redux的区别
学会用自己的思想来理解React和Redux不能光听别人描述名词,理解起来是很困难的。从需求出发,看看使用React需要什么:1. React有props和state: props意味着父级分发下来的属性,state意味着组件内部可以自行管理的状态,并且整个React没有数据向上回溯的能力,也就是说数据只能单向向下分发,或者自行内部消化。理解这个是理解React和Redux的前提。2....
2019-08-25 14:06:58
1222
原创 js常用语句解析
1、if语句if (condition){statement1} else {statement2}2、do…while语句:后测试循环语句。(循环体内的代码至少会被执行一次)do {statement} while (expression);3、while语句:前测试循环语句。(有可能循环体内的代码永远不会被执行)while (expression) {statement...
2019-08-25 13:58:29
238
原创 js操作符
操作符:操作对象时, 相应的操作符都会调用对象的valueOf() 和toString() 方法;1、 一元操作符: 只能操作一个值的操作符。递增和递减操作符: var age = 29; ++age 相当于:age = age + 1; --age 相当于:age = age - 1; PS:执行前置递增或递减操作时,变量的值都是在语句被求值之前改变的。 var age = 29...
2019-08-25 13:55:19
197
原创 ES5基本数据类型解析
一、js简介js组成部分(1995.2-1997.5(第一版ECMAscript))1、核心 ECMAscript2、DOM 文档对象模型 Document Object Model3、BOM 浏览器对象模型 Browser Object Model二、html中使用jsscript元素的六个属性1、async 可选 表示应该立即下载脚本,只对外部脚本文件有限...
2019-08-23 17:25:59
1427
原创 js设计模式五大类总结
// 第一大类、创建型设计模式==一类处理对象创建的设计模式{ // a、简单工厂模式(又称:静态工厂方法) function creatObj(name, time, type) { var o = {}; o.name = name; o.time = time; o.type = type; o...
2019-08-21 17:19:45
337
原创 react
react学习注意事项1,组件名称必须首字母大写,为了和dom元素区分2,警告:组件的返回值只能有一个根元素。这也是我们要用一个来包裹所有元素的原因3, ReactDOM.render只更新需要更新,不会全部刷新domfunction Welcome(props) { return <h1>Hello, {props.name}</h1>; } ...
2019-08-20 11:00:03
93
原创 js三座大山
#1、原型与原型链,#2、作用域及闭包,#3、异步和单线程,原型与原型链说到原型,就不得不提一下构造函数,首先我们看下面一个简单的例子:function Dog(name,age){ this.name = name; this.age = age;}let dog1 = new Dog("哈士奇",3);let dog2 = new Dog("泰迪",2);...
2019-08-20 10:55:14
2110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人