自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 Apache Mahout初体验

1、Mahout是什么?Mahout是一个算法库,集成了很多算法。Apache Mahout 是 Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。2、Mahout是用来干嘛的?2.1 推荐引擎服务商或网站会根据你过去的行为为你推荐书籍、电影或文章。2.2 聚类Google news使用聚类技术通过标题把新闻文章进行分组,从而按照逻辑线索来显示新闻,而并非给出所有新闻的原

2022-04-06 09:50:33 1762

原创 flex:1;

CSS属性 flex 规定了弹性元素如何伸长或缩短以适应flex容器中的可用空间。这是一个简写属性,用来设置 flex-grow, flex-shrink 与 flex-basis。所以,flex:1其实就是设置了三个属性:flex-grow: 1; flex-shrink: 1; flex-basis: 0%;这其中起到最关键作用的就是flex-grow属性了,它指定了flex容器中剩余空间的多少应该分配给项目(flex增长系数),而这个系数如果不设置时默认是0,代表的意义就是即使flex容器有

2022-03-25 16:15:21 119

原创 redux-thunk-基本使用

redux-thunk-基本使用作用redux-thunk 中间件可以处理函数形式的 action。因此,在函数形式的 action 中就可以执行异步操作代码,完成异步操作。拓展了功能,支持函数形式的 action之前const action1 = {type: 'todos/add', payload: '学习redux'}dispatch(action1)之后const action1 = async (dispatch) =>{ const res = await

2022-03-21 15:42:58 376

原创 函数柯里化

柯里化: 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。Currying概念其实很简单,只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。以加法函数为例:function add(a, b) { return a + b;}function curry(fn, a) { return function(b) { ret

2021-11-01 20:20:10 112

原创 MySQL锁表问题

今天面试官问了一个MySQL锁表问题,答曰没遇到,现在记录一下,切记以后学知识要全方面的学习。

2021-10-28 10:46:46 81

原创 SQL语句

菜鸟教程-SQL教程by the way, 今天1024~

2021-10-24 15:04:37 57

转载 Vue项目进行webpack打包时出现css报错

在进行npm run build进行打包时出现报错: Unknow word解决方案暂时注释掉OptimizeCSSPlugin相关配置,等待问题解决后恢复。1.找到build/webpack.prod.conf文件,注释掉此plugin2.再次打包:npm run build此时打包成功3.在生成的dist中查找出现问题的css,定位到具体样式此时发现是em标签出现问题,根据上下样式查找出原样式表的相应位置及属性4.查找样式表问题的对应位置并进行修改5.更改后放开插件注释并重新b

2021-10-22 12:52:14 1228

原创 Array.prototype.slice.call(arguments)

Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)例如: auguments是类数组,不是数组HTML DOM集合转化成数组对象const lis = this.$refs.foodsWarpperUl.getElementsByClassName('food-list') // Array.prototype.sli

2021-10-20 15:33:56 52

原创 session和cookie的应用场景和区别

cookie存于客户端,session存于服务器端。cookie的作用是与服务器进行交互,作为http规范的一部分存在,而web storage是为了在本地存储“数据”而生。cookie应用场景:①判断用户是否登录过网站; ②用来记录购物车或者记录用户使用偏好来制定推送;session应用场景:①登录验证信息cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器

2021-10-19 20:28:50 1618

转载 前端路由实现方式:hash和history

前端路由方式在单页面web网页中, 单纯的浏览器地址改变, 网页不会重载,如单纯的hash网址改变网页不会变化,因此我们的路由主要是通过监听事件,并利用js实现动态改变网页内容,有两种实现方式:hash模式:监听浏览器地址hash值变化,执行相应的js切换网页;history模式:利用history API实现url地址改变,网页内容改变;它们的区别最明显的就是hash会在浏览器地址后面增加#号,而history可以自定义地址。1.hash模式使用window.location.hash属性及窗

2021-10-19 15:04:26 345

原创 观察者模式和发布订阅模式

观察者模式和发布订阅模式的区别  从图中可以看出,观察者模式中观察者和目标直接进行交互,而发布订阅模式中统一由调度中心进行处理,订阅者和发布者互不干扰。这样一方面实现了解耦,还有就是可以实现更细粒度的一些控制。比如发布者发布了很多消息,但是不想所有的订阅者都接收到,就可以在调度中心做一些处理,类似于权限控制之类的。还可以做一些节流操作。代码实现观察者模式// 观察者class Observer { constructor() { } update(val) {

2021-10-18 20:44:24 70

原创 初识WebSocket

why WebSocket?  初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?  答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。  举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。  这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务

2021-10-17 20:16:32 60

原创 浏览器数据库IndexedDB

  随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。  现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同),而且不提供搜索功能,不能建立自定义的索引。所以,需要一种新的解决方案,这就是 IndexedDB 诞生的背景。  通俗地说,IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚

2021-10-17 20:09:52 159

原创 JS为什么是单线程?

什么是进程?  进程:是cpu分配资源的最小单位;(是能拥有资源和独立运行的最小单位)什么是线程?  线程:是cpu调度的最小单位;(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)浏览器是多进程的  放在浏览器中,每打开一个tab页面,其实就是新开了一个进程,在这个进程中,还有ui渲染线程,js引擎线程,http请求线程等。 所以,浏览器是一个多进程的。大家都在说js是单线程的,但是为什么要设计成单线程?  这主要和js的用途有关,js是作为浏览器的脚本语言,主要是实现

2021-10-17 20:06:45 5163

原创 Web Worker使用教程

   JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。  Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给

2021-10-17 20:02:59 72

转载 Mock.js使用

Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型.大概记录下使用过程, 详细使用可以参见Mock文档 Mock Wiki安装使用npm安装: npm install mockjs;或直接<script src="http://mockjs.com/dist/mock.js"></script>;数据模板格式:'name|rule': value属性名|生成规

2021-10-11 17:20:55 250

原创 正向代理和反向代理

  正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回;而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。  正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。  从上面的描述也能看得出来正向代理和反向代理最关键的两点区别:是否指定目标服务器客户端是否要做设置

2021-10-10 10:35:58 94

原创 JS动态属性

不必静态地知道属性名,可以使用动态属性名称来解构对象。function greet(obj, nameProp) { const { [nameProp]: name = 'Unknown' } = obj; return `Hello, ${name}!`;}greet({ name: 'Batman' }, 'name'); // => 'Hello, Batman!'greet({ }, 'name'); // => 'Hello, Unknown!'使用2个参

2021-10-08 10:01:01 347

原创 使用async/await重写异步编程

async关键字将 async 关键字加到函数申明中,可以告诉它们返回的是 promise,而不是直接返回值。示例let hello = async function() { return "Hello" };hello();要实际使用promise完成时返回的值,我们可以使用.then()块,因为它返回的是 promise:hello().then((value) => console.log(value))甚至只是简写如hello().then(console.log)await关

2021-10-07 20:24:49 242

原创 使用Promise封装axios请求

// ajax请求模块import axios from 'axios'// const axios = require('axios')export default function ajax(url,data={},type='GET'){ // 里面的Promise结果控制返回的Promise return new Promise(function(resolve,reject){ // 同步代码 let promise const

2021-10-07 16:08:10 571

原创 axios实例

为什么要创建axios实例,它与我们直接使用的axios.get这样的写法有什么区别?引入axios,然后在页面中进行请求axios.get(‘url’).then(res=>{}),这里默认会导出实例,通常使用这个axios就可以了而之所以要创建axios实例,是因为我们实际工作项目中,可能需要访问多个服务地址,而这些服务请求和响应的结构也可能都完全不同,那么你可以通过axios.create创建不同的实例来处理。比如axios1是用http状态码确定响应是否正常,而axios2是服务器自己

2021-10-07 15:11:29 808

原创 npm install常见安装命令

npm install moduleName # 安装模块到项目目录下 npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。 npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。 npm install -save-dev moduleName # -save-dev 的意

2021-10-06 20:06:07 1873

原创 git使用总结

底层命令git对象 git hash-object -w fileUrl : 生成一个key(hash值):val(压缩后的文件内容)键值对存到.git/objectstree对象 git update-index --add --cacheinfo 100644 hash test.txt : 往暂存区添加一条记录(让git对象 对应 上文件名)存到.git/index git write-tree : 生成树对象存到.git/objectscommit对象 echo

2021-10-06 18:59:44 49

原创 CSS元素类型

css元素分为三种:块级元素、行内元素和行内块元素1、 块级元素设置display:block就是将元素显示为块级元素常用的块状元素有:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>特点:独占一行高度,行高、外边距以及内边距都可以控制宽度默认是容器的10

2021-09-27 09:58:31 504

原创 JS对象继承方式

原型链继承这种方式关键在于: 子类型的原型为父类型的一个实例对象// 父类型function Person(name, age) { this.name = name; this.age = age; this.play = [1, 2, 3]; this.setName = function() {};}Person.prototype.setAge = function() {}// 子类型function Student(price) { this.price =

2021-09-26 19:30:47 74

原创 CSS grid布局

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

2021-09-26 17:42:18 51

原创 CSS flex布局

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

2021-09-26 17:22:20 65

原创 webpack基本配置

开发环境配置/* 开发环境配置:能让代码运行 运行项目指令: webpack 会将打包结果输出出去 npx webpack-dev-server 只会在内存中编译打包,没有输出*/const { resolve } = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = { entry: './src/js/index.js',

2021-09-26 16:27:12 63

原创 Promise实践

来自阮一峰ES6入门教程的博客ECMAScript6 入门-Promise对象

2021-09-13 11:02:44 62

转载 Vue脚手架

笔记脚手架文件结构├── node_modules ├── public│ ├── favicon.ico: 页签图标│ └── index.html: 主页面├── src│ ├── assets: 存放静态资源│ │ └── logo.png│ │── component: 存放组件│ │ └── HelloWorld.vue│ │── App.vue: 汇总所有组件│ │── main.js: 入口文件├── .gitignore: g

2021-09-13 10:53:42 92

原创 python爬取豆瓣电影数据可视化

爬取网页内容第三方库:BeautifulSoup,sqlite3,urllib,xlwt,re#-*- codeing = utf-8 -*-from bs4 import BeautifulSoupimport sqlite3import xlwtimport urllib.request,urllib.errorimport redef main(): baseurl="https://movie.douban.com/top250?start=" #1.爬取网页

2021-07-30 18:51:12 5417

原创 CSS选择器

CSS选择器阮一峰CSS选择器笔记

2021-07-30 13:39:07 62

原创 JavaScript字符与acsii值互转

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-30 13:22:18 376

空空如也

空空如也

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

TA关注的人

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