自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wen_binobject的博客

前端开发

  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 最简单url获取参数方法

// 如果 window.location.search 等于 “?name=jimmy&age=18&m=url&height=1.88”const queryParams = new URLSearchParams(window.location.search);const paramObj = Object.fromEntries(queryParams);console.log(paramObj); // { name: 'jimmy', age: '18', height: '1.8

2022-03-03 18:07:52 244

原创 2分钟让你搞懂 grid-template-areas

上面的效果怎么样通过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">.

2021-09-23 09:59:15 3884 1

原创 最近两年的成果

WebsiteDesktop appACH 业务

2021-08-25 15:20:53 182

原创 js 深拷贝

最近没什么学习计划 自己动手写下简单的面试题 function deepClone(data) { //判断是否为空 if (!data) return data; let dataClone = Array.isArray(data) ? [] : {}; if (typeof (data) === "object") { for (key in data) { if (data.ha

2021-05-19 19:59:50 122

原创 一张图让你懂flutter

看起来是不是特别舒服啊

2020-12-11 16:54:25 120

原创 这几个月没更新博客的原因

2020-11-30 10:48:10 129

原创 js 合并两个有序数组

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]let merge = fun

2020-06-04 16:15:57 538

原创 js 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target = 5,返回 true。给

2020-06-04 15:26:05 420

原创 js 多数元素

leetcode 169.多数元素思路1let majorityElement = function(nums) { if (nums.length === 1) { return nums[0] } let len = nums.length; const map = new Map(); for (let i = 0; i < nums.length; i++) { if (map.has(nums[i])) { const temp = map.get(num

2020-06-03 15:20:39 267

原创 js 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4思路1let singleNumber = function(nums) { for (let i = 1; i < nums.length; i++) { nums[0] = nums[0] ^ nums[i];

2020-06-03 14:16:12 801

原创 SEO优化之sitemap(多语言)

这篇文章解决了什么问题?1. 添加新的页面需要从新修改sitemap文件(每次添加新页面都需要修改一遍,如果添加了新页面忘记修改sitemap.xml文件导致的问题)2. 多语言(国际化)的sitemap应该怎么样编写?3. 通过node 如何获取某个目录结构下的所有文件夹名称(包含相对路径)4. 自己官网的语言和sitemap.xml 支持语言的转换1.为什么要添加sitemap?便...

2020-04-14 14:05:05 2337 3

原创 js 页面平滑滚动到页面顶部

//回到顶部const scrollToTop = () => {const fromTopDistance = document.documentElement.scrollTop || document.body.scrollTop;if (fromTopDistance > 0) {window.requestAnimationFrame(scrollToTop);w...

2020-03-17 15:01:25 1226

原创 一个demo理解防抖节流

http://demo.nimius.net/debounce_throttle/

2019-12-16 15:08:42 231

原创 js 时间戳转时间最佳方法

/* time 1568120862.294167 秒 带小数*/timeStampToTime = time =>{return new Date(parseInt(time)*1000+ 8 * 3600 * 1000).toJSON().substr(0, 19).replace(‘T’, ’ ');}

2019-10-20 09:32:25 141

原创 前端初学electron

1 electron官网electron中文网 https://electronjs.org/docs2 基于vue1.electron-vue官网 https://simulatedgreg.gitbooks.io/electron-vue/content/cn/不足之处:根据官网运行项目后发现如下图1.不足electron 版本太低2.官方给的升级相关不确定 不论是vue即将...

2019-09-25 21:38:18 3240

原创 vue 中的多种组之间通讯方式

前三种使用的比较多 会vue的人基本都了解使用原理 后面几种可能适用性不会那么高 不过特定的问题解决起来也是很方便的1.大家使用做多肯定是父子组件间的通讯了Vue.component('child',{ data(){ return { mymessage:this.message } ...

2019-08-01 17:29:09 163

原创 状态码301和302区别

1. 首先分析下相同点和不同点。相同点301和302状态码都表示重定向,客户端浏览器的URL都会改变(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)。不同点301 redirect: 301 代表永久性转移(Permanently Moved)301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302...

2019-07-31 18:27:17 429

原创 解决vue中父组件修改子组件样式的问题

1 去掉 scoped当 <style>标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。但是在父组件中添加 scoped 之后,父组件的样式将不会渗透到子组件中,所以在父组件中书写子组件的样式是无效果的。2 混用本地和全局样式<style>/* 全局样式 */</style><style scoped>/* 本地...

2019-06-24 12:18:59 4561

原创 vue 生命周期详解

引入官网一张生命周期详情图Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会...

2019-05-17 13:31:06 227

原创 js简单的面试题:找出字符串中出现次数最多的字符

简单的对象赋值法 let testStr = 'adsadafgxzcnvzbsadadadsaddd'; function getMax(str) { debugger; let obj = {}; for(let i in str) { if(obj[str[i]])...

2019-04-18 09:39:43 419

原创 新版chrome中http无法打开摄像头问题解决

自己写的获取摄像头权限人脸识别 由于浏览器的原因不能使用了。经查询时因为http高版本chrome的安全限制问题。1. Windows:chrome快捷方式右键->属性->目标 输入框中追加 --unsafely-treat-insecure-origin-as-secure=“http://host||ip:port” --user-data-dir=“F:\temp”(–...

2019-03-26 15:53:24 45469 5

原创 vue 基于获取摄像头权限 拍照的人脸识别技术

为什么要做这个呢?不同用户具有不同的权限 如果管理员用户被别人知晓了怎么办? 为了解决该用户 账号密码泄露导致的误操作。前端实现思路是什么呢?前端思想是获取摄像头权限 通过canvas 获取base64图片 然后转为二进制文件流 通过FormData(form表单提交)和后端交互 的方式进行识别后端的实现思路呢?创建一个sql 里面存一些有权限的人员信息包含照片等 用上传的照片和sql里...

2019-03-26 10:57:31 11009 13

原创 前端获取电脑摄像头权限并拍照进行人脸识别

为什么要做这个呢?为了解决账号密码泄露导致的误操作。前端实现思路是什么呢?前端思想是获取摄像头权限 通过canvas 获取base64图片 然后转为二进制文件流 通过FormData(form表单提交)和后端交互 的方式进行识别后端的实现思路呢?创建一个sql 里面存一些有权限的人员信息包含照片等 用上传的照片和sql里面的数据进行对比人脸识别 进而知道进入当前系统的人是否具有某些权限 ...

2019-03-26 10:49:29 10011 4

原创 java 多态的学习和堆栈方法区画图 向上转型 向下转型

class Test2_Polymorphic { public static void main(String[] args) { Father f = new Son(); System.out.println(f.num); //成员变量 编译看左边(父类) 运行看左边(父类)。 f.print(); /*成员方法 编译看左边(父类) 运行看右边(子类)。 ...

2019-03-12 19:52:58 464 2

原创 React / Vue 组件中的key详谈

我先回答这个问题:key的作用主要是为了高效的更新虚拟DOM在diff算法中 key是为了在diff算法执行时更快的找到对应的节点,提高diff速度两个相同的组件产生类似的DOM结构,不同的组件产生不同的DOM结构。同一层级的一组节点,他们可以通过唯一的id进行区分。基于以上这两点假设,使得虚拟DOM的Diff算法的复杂度从O(n^3)降到了O(n)。这里我们借用React’s d...

2019-02-18 16:58:08 1061

原创 mysql 存储过程(Stored Procedure)

存储过程(Stored Procedure)优点:将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用。批量处理:SQL+循环,减少流量,也就是“跑批”。统一接口,确保数据的安全。1.不带参数的存储过程:CREATE PROCEDURE v() SELECT VERSION();调用:2.创建带有in类型的存储过程CREATE PROCEDURE remo...

2019-02-18 15:22:08 865

原创 msql 自定义函数(UDF)

如果我想实现一个这样的函数,并且经常使用,就可以定义自定义函数(方便重复调用)。先简单的创建一个不带参数的自定义函数:调用自己创建的自定义函数:创建带参数的自定义函数:CREATE FUNCTION liang (num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED)RETURNS FLOAT (10, 2) RETURN (num1 + num2...

2019-02-18 09:35:10 202

原创 mysql 比较运算符 日期时间函数 信息函数 聚合函数 加密函数

1.比较运算符返回1是true 返回0 是false。2.日期时间函数只列举了常用的几个日期时间函数。DATE_ADD();SELECT DATE_ADD(date,INTERVAL expr unit); //第一个参数是时间 然后 INTERVAL 数字(可以为负值) WEEK/DAY/YEAR 等。DATEDIFF();SELECT DATEDIFF(expr1...

2019-02-13 17:13:20 226

原创 mysql数值运算符

数值运算符前六个简单的我就不写demo了,和JavaScript用法一样。DIV 这个方法JavaScript没用 不过也很简单(我的理解是先除 然后向下取整)。TRUNCATE();// 第一个参数是截取的数 第二个是小数点后几位(可以为负值) 数字截取 只截取 不做数值操作。...

2019-02-13 15:39:39 338

原创 mysql 字符函数

1.字符函数1.CONCAT();CONCAT(“第一个需要连接的内容”,“第二个需要连接的内容”,…);2.CONCAT_WS();需要注意的是CONCAT_WS(“分隔符”,“第一个需要连接的内容”,“第二个需要连接的内容”,…);参数的一个个是分隔符 之后的内容都会用分隔符进行连接。3.FORMAT();FORMAT(输入的数值,保留几位小数); //三位一划分3...

2019-02-13 14:00:44 222

原创 mysql无限级分类表设计

1.先创建表CREATE TABLE tdb_goods_types(type_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,type_name VARCHAR(20) NOT NULL,parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0);2.写入数据INSERT tdb_goods_t...

2019-02-13 11:28:04 1233

原创 mysql 外键相关 mysql JOINS

1.删除时属性:默认(RESTRICT),RESTRICT,No ACTION,CASCADE,SET NULL属性。当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。当取值为Cascade时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包...

2019-02-12 15:17:54 137

原创 mysql 简单的数据操作

mysql表中数据修改操作:执行:UPDATE test SET age = age -5 WHERE id = 0;//id=0的 age减少5 所以从30变为了25;mysql表中数据删除操作:DELETE FROM test WHERE id = 5;对查询结果进行分组:SELECT password From test GROUP BY password;HAVING是分组...

2019-01-31 17:21:32 152

原创 mysql学习笔记

连接数据库:mysql -uroot -p -P3306 -h127.0.0.1查看数据库版本:SELECT VERSION();查看数据库当前时间:SELECT NOW();查看当前用户:SELECT USER();创建数据库: CREATE DATABASE t111;显示当前数据库服务器中的数据库列表:SHOW DATABASE;四个是默认有的t111是新创建的。查看数据库的...

2019-01-23 14:52:39 91

原创 mysql修改my.ini遇到的权限问题 及mysql的启动和关闭。

window10版本 修改mysql中的my.ini 遇到了权限问题。错误提示如下:发现没有权限,如果右键有用管理员打开,直接打开然后修改报错即可。如果右键没有用管理员打开,就window下用管理员打开记事本,然后用记事本打开my.ini,修改然后保存即可。用cmd打开mysql原因是需要用管理员方式打开net start mysql 打开mysqlnet stop masql ...

2019-01-21 16:32:02 17613

原创 js 常规打水印方法 canvas方法

看到同事曾经有写过一个打水印的方法就看了下实现方法。&amp;amp;amp;lt;html&amp;amp;amp;gt; &amp;amp;amp;lt;head&amp;amp;amp;gt; &amp;amp;amp;lt;meta http-equiv=&amp;amp;quot;Content-Type&amp;amp;quot; content=&amp;amp;quot;text/html; charset=UT

2018-12-27 14:30:29 962 1

原创 好久没写选择排序了刚好学java就自己写一下

选择排序public class SelectionSort{ public static void main(String []args){ int [] x= {111,-1,2,3,10,4}; SelectionSort(x); } public static int[] SelectionSort(int[] x){ for (int i = 0; i &amp;amp;lt...

2018-12-14 17:46:13 90

原创 postMessage和onmessage Cross-document messaging

解决了在网页文档之间互相接收与发送信息的功能问题。由于同源策略的限制,JavaScript 跨域的问题,一直是一个颇为棘手的问题。HTML5 提供了在网页文档之间互相接收与发送信息的功能。使用这个功能,只要获取到网页所在窗口对象的实例,不仅同源(域 + 端口号)的 Web 网页之间可以互相通信,甚至可以实现跨域通信。 要想接收从其他窗口发送来的信息,必须对窗口对象的 onmessage 事件进行...

2018-12-13 11:11:22 222

原创 java学习遇到的问题 无法从静态上下文中引用非静态变量、方法。

在写java的斐波那契数列递归时遇到了一个问题。public class Fibonacci{ public static void main(String []args) { int x = f(6); System.out.println(x); } public int f(int x) { if(x==1||x==2){ return 1; }els...

2018-12-11 16:30:34 59536 5

原创 java 初学 成员变量和局部变量的区别

作用域不同局部变量的作用域仅限于定义它的方法。成员变量的作用域在整个类内部都是可见的。初始值不同java会给成员变量一个初始值。java不会给局部变量一个初始值。定义次数不同在同一个方法中,不允许同名局部变量。在不同方法中,允许同名局部变量。优先级不同局部变量和成员变量同时命名时,局部变量的优先级更高。这些和前端基本一致,对应前端的局部变量和全局变量。不同区别在于...

2018-11-28 11:55:52 141

angular 技术分享

文斌 关于angular 管道 和Rx.JS的PPt。 文斌 关于angular 管道 和Rx.JS的PPt。 文斌 关于angular 管道 和Rx.JS的PPt。 文斌 关于angular 管道 和Rx.JS的PPt。 文斌 关于angular 管道 和Rx.JS的PPt。

2017-09-22

空空如也

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

TA关注的人

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