javascript 正则表达式校验
一、校验数字的表达式 数字:[1]*$ n 位的数字:^\d{n}$ 至少 n 位的数字:^\d{n,}$ m-n 位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带 1-2 位小数的正数或负数:^(-)?\d+(.\d{1,2})?$ 正数、负数、和小数:^(-|+)?\d+(.\d+)?$ 有两位小数的正实数:[2]+(.[0-9]{2})?$ 有 1~3 位小数的正实数:[3]+(.[0-9]{1,3})?$ 非零的正整数:[4]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$ 非零的负整数:^-[1-9][]0-9”$ 或 ^-[1-9]\d$ 非负整数:^\d+$ 或 [5]\d*|0$ 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 非负浮点数:^\d+(.\d+)?$ 或 [6]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$ 非正浮点数:^((-\d+(.\d+ ...
git 命令
一:Git 是什么?1Git是目前世界上最先进的分布式版本控制系统。 二:SVN 与 Git 的最主要的区别?SVN 为集中式版本控制系统,版本库是集中存放在中央服务器的单独搭建 SVN 服务器,不能离线工作操作简单,代码保密性较强 GIT 为分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库适合分布式开发,强调个体公共服务器压力和数据量都不会太大速度快灵活可以离线工作操作复杂,代码保密性差 GitHub,免费的远程仓库,如果是个人的开源项目,放到 GitHub 上是完全没有问题的。GitHub 还是一个开源协作社区,通过 GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。 SVN 的存储需要依赖一个服务器,而 git 所有的东西是放在线上的。节约成本,省时省力。 ‘Please tell me who you are.’ 查看全局配置 git config –global –list 命令 git config –global user.name “你的 git 名称”命令 git config –global user. ...
js 深拷贝总结
JSON.stringify && JSON.parse这是最简单的 js 实现深拷贝方式了,原理是先将对象转换为字符串,再通过 JSON.parse 重新建立一个对象。 但这种方式存在一定的局限性: 不能复制 Function、正则、Symbol循环引用会报错相同引用会被重复复制根据以上三点我们来验证,实测代码如下: 123456789let obj = { func: function () {}, reg: /^abc$/, syb: Symbol("demo"), str: "abc",};let copyObj = JSON.parse(JSON.stringify(obj));console.log(copyObj); 打印结果:Function、正则和 Symbol 都没有被复制正确的值 如果 JSON.stringify 中传入一个循环引用的对象,就会报错: 我们来看看下面这段代码: 12345678910111213let obj1 = { name: ...
JS 声明提升
产生因素函数在执行时会先创建当前的执行上下文环境。其中产生声明提升的因素有以下两点: 变量定义 函数声明 编译阶段 当 js 引擎开始解析脚本时,这时代码还没有运行,会先给代码中的变量、函数声明设置内存,并暂时将变量赋值为 undefined,函数先声明为可使用;为后面即将执行的代码做准备,这个阶段就是编译阶段。 比如 var a = 1; JS 引擎会将其看作两个声明:var a; 和 a = 1;。第一个定义声明在编译阶段进行,第二个赋值声明会被留在原地等待执行阶段。 变量声明提升 只有 var 声明的变量存在变量提升;let、const 会形成块级作用域,造成暂时性死区。 12345console.log(a); // undefinedvar a = 1;console.log(fun); // undefinedvar fun = function () {}; 上面例子都会会打印出 ‘undefined’,变量声明提升会将变量声明提升到作用域顶部,但只会提升声明部分,不会提升赋值部分,实际提升后结果如下: 1234567var a;cons ...
GitHub 精选—前端
综合资源javascript(Star:108k)airbnb 出品写 js 最佳的姿势,已成众多公司 js 代码风格的标准 github 仓库地址:https://github.com/airbnb/javascript awesome-wechat-weapp(Star:34.9k)微信小程序开发资源汇总 💯 github 仓库地址:https://github.com/justjavac/awesome-wechat-weapp gold-miner(Star:28.8k)🥇 掘金翻译计划,可能是世界最大最好的英译中技术社区,最懂读者和译者的翻译平台 github 仓库地址:https://github.com/xitu/gold-miner Blog(Star:22.7k)冴羽写博客的地方,预计写四个系列:JavaScript 深入系列、JavaScript 专题系列、ES6 系列、React 系列 github 仓库地址:https://github.com/mqyqingfeng/Blog mars(Star:15.4k)腾讯移动 web 前端知识库 ...
vue 组件—常用选项(methods、watch、filters、props、computed)
在介绍这些选项之前,我们先要了解这几个属性参数 12345el: 指定Vue实例的挂载点,也就是DOM元素,是Vue的特有属性data: 用于声明需要响应式绑定的数据对象(实例的数据)components:Vue实例配置局部注册组件template:用于挂载元素的字符串模板render:渲染函数,创建虚拟DOM,是字符串模板的替代方案 首先,先创建出一个 Vue 实例: 1<div id="app"></div> 1234let vm = new Vue({ el: "#app", // 挂载点 data: {}, // vm实例数据}); methods 方法methods 选项是个对象,在其内部可以定义方法比如说 click 事件、请求方法 12345678910111213let vm = new Vue({ el: "#app", data: { num: 1, }, methods: { ...
javascript 之 this 指向问题
前言关于 this 指向的问题,之前我一直都相信这样的说法:谁调用它,this 就指向谁。可是在开发中往往有一些不一样的情况;所以在这里说说我对 this 的一些认知和理解。 首先,我们要知道的是,this 的指向,是在函数被调用的时候被确定的。也就是在执行上下文被创建时确定的。 例 1: 123456function fn() { var a = 10; console.log(this); // window console.log(this.a); // undefined}fn(); 按照我们上面说的 this 最终指向的是调用它的对象,这里的函数 fn 实际是被 Window 对象所点出来的,如下代码可以得到证明。 123456function fn() { var a = 10; console.log(this); // window console.log(this.a); // undefined}window.fn(); 其实 alert 也是 window 的一个属性,也是 window 点出来的。 例 ...