- 博客(120)
- 资源 (2)
- 收藏
- 关注
原创 你不知道的JavaScript中卷 - 【值】
1、检测null// 检测 a 是不是 null(!a && typeof a === 'object'); // true2、函数不仅是对象,还有属性let a = function(b, c, d) {};a.length; // 33、typeof 一个未定义的变量,不报错,返回undefinedvar a;typeof a; // "und...
2019-11-15 18:29:13 270
转载 vue 基础二
一、vue表单控件绑定1、绑定value对于单选按钮,勾选框及选择列表选项,v-model绑定的value通常是静态字符串(对于勾选框是逻辑值)<!-- 当选中时,`picked` 为字符串 "a" --><input type="radio" v-model="picked" value="a"><!-- `toggle` 为 true 或 fa...
2019-11-01 15:41:43 427
转载 vue router 总结
一、组件内导航之beforeRouteUpdate的使用使用场景: 组件复用;路由跳转;beforeRouteUpdate (to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo ...
2019-10-30 18:18:59 340
转载 vue基础一
记录本文主要是为了总结,把多篇博文里我认为重要的点记录下来,以便查找。感兴趣的可以详细看原文。一、1、由于Vue使用getter/setter等ES5特性,所以兼容到IE92、每一个Vue实例(组件本质上就是一个Vue实例)需要有一个根元素3、不应该在模板表达式中试图访问用户定义的全局变量二、1、命名约定 1.1 组件命名,字母小写且包含一个中划线(-)...
2019-10-29 14:44:03 223
转载 js跳转链接的几种方式
1、跳转链接 在当前窗口打开window.location.href="http://www.baidu.com"等价于 <a href="http://www.baidu.com"target="_self"></a>2、跳转链接 在新窗口打开window.open("http://www.baidu.com") 等价于 <a h...
2019-10-29 13:51:29 1437
原创 vue组件规范
<!-- 单文件组件应该总是让顶级标签的顺序保持一致,且标签之间留有空行 --><template> <!-- 多个动态属性需分为多行 --> <!-- 统一使用指令缩写 : @ --> <!-- 标签的 Props 应该有统一的顺序,依次为指令、属性和事件 --> <my-component v-if=...
2019-10-28 23:43:02 400
转载 用 loading 切图实现 loading 动画
直接上代码<img src="../assets/images/loading.png" alt="">img { animation: loadingRotate 1s infinite linear;}@keyframes loadingRotate { from { transform: translate(-50...
2019-09-25 09:59:13 254
转载 【转】JavaScript——连续赋值与求值顺序(var a.x=a={n:2})
例题var a = { n: 1};var b = a;a.x = a = { n: 2 };alert(a.x); // undefinedalert(b.x); // [object Object]解析:a.x = a = { n: 2 };. 操作符的优先级比 = 高,= 从右向左解析,a.x ->这时候的a还是原来的a,a = { n: ...
2019-05-24 09:37:11 425
原创 axios禁止请求缓存
360浏览器“极速模式”采用Blink(Webkit)内核,具有更高的网页浏览速度和更好网页渲染效果。不存在自动缓存请求。“兼容模式”采用Trident内核(IE内核),会自动缓存请求。导致在进行一些表格操作(增删改查)时出现不刷新,重新登录才刷新的问题。使用vue axios,增加以下设置就可以了:const service = axios.create({ // ......
2018-11-20 16:32:05 17149
原创 项目中 eslint 报错: Expected linebreaks to be 'LF' but found 'CRLF'
原因:不同系统不同工具下换行符的问题 方法一:修改eslintrc.js,给rules添加: 'linebreak-style': ['error', 'window'],(如果你用的是windows) 或者 'linebreak-style': ["off", "windows"]可能需要重新启动项目,或者重新打开vscode 方法二:如果是w...
2018-09-28 16:03:00 8152 1
原创 ECMAScript 6 学习:Proxy篇
概述Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器...
2018-09-26 11:35:10 224
原创 ECMAScript 6 学习:Reflect篇
目录Reflect.get(target, name, receiver)Reflect.set(target, name, value, receiver)Reflect.has(obj, name)Reflect.deleteProperty(obj, name)Reflect.construct(target, args) Reflect.getPrototypeOf...
2018-09-25 19:23:27 238
原创 Generator笔记
1 Generator 函数是一个状态机,封装了多个内部状态2 执行 Generator 函数会返回一个遍历器对象;返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态3 特征function关键字与函数名之间有一个星号 函数体内部使用 yield 表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)4 调用 Generator 函数后,该函数并不...
2018-09-25 17:12:11 203
原创 ECMAScript 6 学习:Promise篇
Promise是异步编程的一种解决方案。Promise对象,可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。从0到1实现Promise 这篇文章详细地介绍了Promise的实现,值得细细研读。 1、Promise 新建后就会立即执行 2、调用 resolve 或 reject 并不会终结 Promise 的参数函数的执行// 调用resolv...
2018-09-25 15:54:12 246
原创 如何启用 eslint
使用vscode编辑器,在应用里安装了eslint,还需要全局安装eslint,项目里的配置才会生效。npm i eslint -g
2018-09-19 21:23:40 1605
原创 扩展运算符
概念扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5 1 该运算符主要用于函数调用function push(array, ...items)...
2018-09-19 17:02:06 476
转载 CSS Modules 用法教程
学过网页开发就会知道,CSS 不能算编程语言,只是网页样式的一种描述方法。为了让 CSS 也能适用软件工程方法,程序员想了各种办法,让它变得像一门编程语言。从最早的Less、SASS,到后来的 PostCSS,再到最近的 CSS in JS,都是为了解决这个问题。本文介绍的 CSS Modules 有所不同。它不是将 CSS 改造成编程语言,而是功能很单纯,只加入了局部作用域和模块依赖...
2018-09-17 16:28:05 152
转载 webpack的loader
1. style-loader css-loader sass-loader 的作用style-loader: 将所有的样式嵌入到dom的style属性当中。css-loader: 将css当中的 @import 和 url(...) 解析成 import / require 引入sass-loader: 将代码sass编译成css 2. webpack的执行顺序配置的...
2018-09-17 16:05:31 363
原创 react 学习
React.js 小书Redux 入门教程(一):基本用法Redux 入门教程(二):中间件与异步操作Redux 入门教程(三):React-Redux 的用法react 实践之 redux applyMiddleware方法详解React系列---FSA知识 React系列——将简单react组件写的很装逼,react-document-title组件实现 U...
2018-09-08 16:28:11 203
转载 Event Loop(事件机制)知多少
带你彻底弄懂Event Loop 这篇文章值得一读 在讲 Event Loop (事件循环)之前,我们来了解点 node 的东西,来帮助我们更加明白事件循环是干什么的 Node 解决了什么Web 服务器的瓶颈在于并发的用户量。Node 的首要目标是提供一种简单的,用于创建高性能服务器的开发工具。Node在处理高并发,I/O 密集场景有明显的性能优势高并发,是指在同一...
2018-09-03 15:13:25 696
原创 jquery 这些小技巧你懂吗
jquery有很多奇淫技巧,它的结构清晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性。这里仅对其中的一些小技巧做个总结。 1、jquery闭包把当前沙箱需要的外部变量通过函数参数引入进来只要保证参数对内提供的接口的一致性,你可以随意替换传进来的这个参数(function(window, undefined) { // jQuery 代码 undefine...
2018-08-24 14:22:47 251
原创 javascript设置时间区间
直接上代码util.getKindsOfTime = function () { let now = new Date(); //当前日期 let nowDayOfWeek = now.getDay(); //今天本周的第几天 let nowDay = now.getDate(); //当前日 let nowMonth = n...
2018-08-23 11:18:44 918
原创 vue项目遇到的那些坑
项目使用iview 2.0 + vue 2.0 1、select(1)单选,value值为数字时, 表单验证时要加 type: 'number' this.$refs.selectedDevice.clearSingleSelect(); 清空单选项,仅在 clearable="true" 时有效(2)多选, 要加 type: 'array'// value值为...
2018-08-23 11:01:36 1444
原创 javaScript之原型
[[prototype]] JavaScript中的对象有一个特殊的 [[prototype]] 内置属性,其实就是对于其他对象的引用。几乎所有的对象在创建时 [[prototype]] 属性都会被赋予一个非空的值。Object.create(..)会创建一个对象并把这个对象的 [[prototype]] 关联到指定的对象。var obj = { a: 2};var obj1 ...
2018-08-13 14:51:52 142
原创 自定义@@iterator
@@iterator是一个可以返回迭代器对象的函数。调用迭代器的next()方法会返回形式为{value: .. , done: ..} 的值, value是当前的遍历值, done是一个布尔值, 表示遍历是否结束。var obj = { a: 2, b: 3}Object.defineProperty(obj, Symbol.iterator, { wri...
2018-08-11 11:52:16 2207
原创 分析 “硬绑定” bind
// 这是MDN提供的一种bind(..)实现,代码进行了排版 // 代码会判断硬绑定函数是否被new调用,如果是的话就会使用新创建的this // 替换硬绑定的this if (!Function.prototype.bind1) { Function.prototype.bind1 = functi...
2018-08-10 16:57:07 544
原创 分析 “软绑定”
一段代码看了很久也搞不清楚,似懂非懂。打上断点,仔细琢磨,终于有一点豁然开朗的感觉。此处记录一些不容易想明白的地方,仅供分析用。 // 检查调用时的this,如果this绑定到全局对象或者undefined,那就把指定的默认对象obj绑定到this, // 否则不会修改this // 此段代码还支持可选的柯里化 if(!F...
2018-08-10 15:26:12 244
原创 css布局之版权信息
要实现这样一个功能: 版权信息永远位于main页面的底部,当main页面内容不满屏时,footer部分依旧处于视窗的下方。<div class="main"> <div class="inner"> <div class="main-content"> 主要内容 <
2018-07-27 19:30:30 3657
转载 为什么要用promise
原文: 为什么要使用promise 起因大家都知道做前端开发最让人头痛的就是处理异步请求的情况,在请求到的成功回调函数里继续写函数,长此以往形成了回调地狱。function load() { $.ajax({ url: 'xxx.com', data: 'jsonp', success: function(res) { ...
2018-07-25 14:11:49 1327
转载 异步的发展过程
原文: 异步的发展过程 发展过程callback -> promise -> generator + co -> async + await(语法糖)异步是不支持try/catch的,try/catch只在同步中使用node支持异步// 1.txt -> 周杰伦// 2.txt -> 七里香// node里内置的fs方法const fs ...
2018-07-25 11:38:21 259
转载 【你不知道的JavaScript上卷】——作用域与闭包
原文: 【你不知道的JavaScript上卷】——作用域与闭包 JS语言万变不离其宗,其中最常用、最重要的也就是常用的几个大概念。数据类型、作用域、原型链、闭包、this指针、异步,不同的人理解不一样,不一样的书讲解的也不一样。但这本《你不知道的JavaScript》系列言简意赅,直指本质,值得反复阅读,每次阅读都感觉代码的设计实现精妙之处 一、浏览器如何运行代码? 我们每...
2018-07-24 19:50:18 223
转载 JavaScript异步编程
原文: JavaScript异步编程 #前言从我们一开始学习JavaScript的时候就听到过一段话:JS是单线程的,天生异步,适合IO密集型,不适合CPU密集型。但是,多数JavaScript开发者从来没有认真思考过自己程序中的异步到底是怎么出现的,以及为什么会出现,也没有探索过处理异步的其他方法。到目前为止,还有很多人坚持认为回调函数就完全够用了。但是,随着JavaScri...
2018-07-24 10:31:56 566
原创 逗号运算符
首先看个例子 var i,j,k; for( i = 0 , j = 0; i < 10 , j < 6; i++ , j++ ) { k = i+j; console.log('i='+i+',j='+j+',k的结果是:'+k); }控制台结果是:对上面的例子做一下修改 var i,j,k; for( i = 0 ...
2018-07-23 17:57:43 1776
转载 JavaScript 内存泄漏教程
原文: JavaScript 内存泄漏教程 一、什么是内存泄漏?程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。有些语言(比如 ...
2018-07-23 16:44:48 168
转载 聊聊V8引擎的垃圾回收
原文: 聊聊V8引擎的垃圾回收 前言我们知道,JavaScript之所以能在浏览器环境和NodeJS环境运行,都是因为有V8引擎在幕后保驾护航。从编译、内存分配、运行以及垃圾回收等整个过程,都离不开它。 为什么要有垃圾回收在C语言和C++语言中,我们如果想要开辟一块堆内存的话,需要先计算需要内存的大小,然后自己通过malloc函数去手动分配,在用完之后,还要时刻记...
2018-07-23 16:24:00 483
转载 JS学习系列 03 - 函数作用域和块作用域
原文:JS学习系列 03 - 函数作用域和块作用域 在 ES5 及之前版本,JavaScript 只拥有函数作用域,没有块作用域(with 和 try...catch 除外)。在 ES6 中,JS 引入了块作用域,{ } 内是单独的一个作用域。采用 let 或者 const 声明的变量会挟持所在块的作用域,也就是说,这声明关键字会将变量绑定到所在的任意作用域中(通常是 {...} 内部)。...
2018-07-23 15:13:38 222
转载 JS学习系列 02 - 词法作用域
原文: JS学习系列 02 - 词法作用域 1. 两种作用域“作用域”我们知道是一套规则,用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找。作用域有两种主要工作模型:词法作用域和动态作用域。大多数语言采用的都是词法作用域,少数语言采用动态作用域(例如 Bash 脚本),这里我们主要讨论词法作用域。2. 词法大部分标准语言编译器的第一个工作阶段叫...
2018-07-23 14:14:50 163
转载 JS学习系列 01 - 编译原理和作用域
原文: JS学习系列 01 - 编译原理和作用域 在学习 javascript 的过程中,我们第一步最应该了解和掌握的就是作用域,与之相关还有程序是怎么编译的,变量是怎么查找的,js 引擎是什么,引擎和作用域的关系又是什么,这些是 javascript 这门语言最基础的地基,至于对象、函数、闭包、原型链、作用域链以及设计模式等等都是地基以上的建筑,只有地基打牢了,建筑才会稳。同样只有先把最...
2018-07-23 11:16:40 376
转载 JS学习系列 07 – 标签声明(Label Statement)
原文: JS学习系列 07 – 标签声明(Label Statement) 1. 引言假设有这么一道题:for (var i = 0; i < 10; i++) { console.log(i); for (var j = 0; j < 5; j++) { console.log(j); }}console.log('do...
2018-07-23 10:38:30 1072
转载 JS学习系列 06 – 变量对象
原文: JS学习系列 06 – 变量对象 变量对象就是执行上下文和作用域链中间的桥梁。剧透一下,神秘的 this 就存在于执行上下文环境之中!当然,之后我会单独用几节来彻底讲明白 this 到底是什么(其实 this 很简单)。接下来,我们进入正文。1. 执行上下文包含什么一个执行上下文我们可以抽象的理解为对象(object)。每一个执行上下文都有一些属性(又称为上下文...
2018-07-21 15:59:36 220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人