js学习之call和apply
贪玩蓝月真好玩,但学习还是要继续的 我们平时调用一个js函数是这样的 12345678910var ruben = { say: function (word) { if (this.name == null) { this.name = "ruben"; } return this.name + "说:" + word; }}var whatRubenSaid = ruben.say("做猪呢,最重要的是开心");console.log(whatRubenSaid); 输出结果 那么我们现在新创建一个对象 123var Achao = { name: "Achao"} 如果我们想在Achao里调用ruben里的say函数 我们就可以这样 12var whatAchaoSaid = ruben.say.call(Achao, &quo...
vue2.0配置路由
古希腊哲学家芝诺的学生问他:“老师,难道你有不懂得的东西吗?”芝诺风趣地回答:“如果用小圆代表你们学到的知识,用大圆代表我学到的知识,那么大圆的面积是多一点;但两圆之外的空白,都是我们的无知面,圆越大,其圆周接触的无知面就越多。” 先说下端口配置吧 项目根目录下新建一个文件叫vue.config.js 12345module.exports = { devServer: { port: 3000 }} 然后npm run serve运行项目,可以看到端口号变了 然后再配置个路由吧 1cnpm i vue-router 在main.js中引入 123456789101112import Vue from 'vue'import App from './App.vue'import router from '@/router'Vue.config.productionTip = falsenew Vue({ router, rend...
js获取url上的参数
获取url上的参数 123456789101112function getUrlParam(name) { if (name == null) { return name; } var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) { //return unescape(r[2]); return r[2]; } return null; } 1console.log(getUrlParam("id"));
js函数防抖
之前写了一篇javascript防抖是应用在按钮中的 今天继续完善一下,下面的函数ruben就算循环10亿次,一秒内也会只调用一次 123456789101112131415var antiShakeFlag = false; function ruben() { if (antiShakeFlag) { return; } console.log("ruben") antiShakeFlag = true; setTimeout(() => { antiShakeFlag = false; }, 1000); } for (let i = 0; i < 10; i++) { console.log("achao&qu...
驼峰下划线互转工具类
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package com.ruben.utils;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @ClassName: CamelCaseUtils * @Description: * @Date: 2020/8/31 19:13 * * * @author: achao<achao1441470436 @ gmail.com> * @version: 1.0 * @since: JDK 1.8 */public class CamelCaseUtils { private static Pattern underlinePattern = Pattern.compile("_(\\w)"); private static Pattern upper...
新版vue项目的创建
下载nodejs 然后一直下一步安装就行 打开vscode 点击左下角的 点击终端 (Win+R输入cmd或者powershell一样的) 然后开始安装vue 1234567891011121314151617181920212223242526#查看版本(如果nodejs安装完了还是显示不是内部或外部命令,也不是可运行的程序或批处理文件,重新打开一下vscode或命令框)PS C:\Users\1> npm -v6.14.5#安装cnpmPS C:\Users\1> npm install -g cnpm --registry=https://registry.npm.taobao.org#查看cnpm版本PS C:\Users\1> cnpm -vcnpm@6.1.1 (C:\Users\1\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js)npm@6.14.5 (C:\Users\1\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\...
第三方登录
大家经常被注册登录繁琐的步骤击退,经常进几个不同的网站要输入几次用户密码,特别繁琐 所以社交账号登录出现了,也就是说用QQ微信微博等社交账号就可以登录其他网站 OAuth 2.0是用于授权的行业标准协议。OAuth 2.0致力于简化客户端开发人员,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。该规范及其扩展正在IETF OAuth工作组内开发。 Oauth 2.0文档 流程图如下: 1234567891011121314151617+--------+ +---------------+| |--(A)- Authorization Request ->| Resource || | | Owner || |<-(B)-- Authorization Grant ---| || | ...
js网页离开时标签栏闪烁效果
之前有朋友问我博客里浏览器标签栏闪烁效果怎么做的 今天把代码贴出来吧 123456789101112131415161718192021222324252627282930313233343536373839// 使用message对象封装消息 var message = { time: 0, title: document.title, timer: null, // 显示新消息提示 show: function () { var title = message.title.replace("【 】", "").replace("【新消息】", ""); // 定时器,设置消息切换频率闪烁效果就此产生 message.timer = setTimeout(funct...
安全密码正则
当你回首往事时,不因碌碌无为而悔恨,不为虚度年华而羞耻,那你就可以很骄傲地和自己讲,你不负此生! 今天分享一个密码的正则,密码必须包含大、小写字母、数字、特殊符号至少三种,且长度为8-20 1^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,20}$ javascript代码 123if (!(/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8...
PS制作GIF
昨天写了篇博客,是关于CSS实现图片旋转的,群里的小伙伴跟我说博客里看不到效果让我做个GIF。。。那我今天就来写篇如何用PhotoShop制作GIF 我们先把图片拖入ps 然后解锁背景图层 然后选中图层 Ctrl+J复制图层 然后给每个图层调整角度旋转。。。 选中图层然后按Ctrl+T 然后拖动 重复步骤 然后点窗口->时间轴 然后点击从图层建立帧 调整时间 文件->存储为web所用格式 选择gif 点击存储 然后就做好了
