栾铸显的博客

No road to follow


  • 首页

  • 分类

  • 归档

  • 搜索
Fork me on GitHub

JavaScript 一些数组处理的应用

发表于 2019-05-07 | 分类于 javascript | | 阅读次数:
使用 filter、map 和其它 ES6 新增的高阶遍历函数将数组中的 falsy 值去除123const arrContainsEmptyVal = [3, 4, 5, 2, 3, undefined, null, 0, ""]const compact = arr => arr.filter(Boolean)compact(arrContainsEmptyVal) 将数组中的 VIP 用户余额加 1012345678const users = [ { username: "Kelly", isVIP: true, balance: ...
阅读全文 »

ES6 的应用

发表于 2019-05-07 | 分类于 javascript , es6 | | 阅读次数:
对象解构移除不想要的属性1234567891011121314// 移除 _internal 和 tooBig 这两个属性let { _internal, tooBig, ...cleanObject} = { _internal: "secret", tooBig: {}, el1: '1', el2: '2', el3: '3'}console.log(cleanObject) // { el1: '1', ...
阅读全文 »

Vue 杂记

发表于 2019-05-07 | 分类于 vue | | 阅读次数:
vue 监听数组长度变化12345678910111213141516171819var vm = new Vue({ el: 'body', data: { list: [] }, computed: { length () { return this.list.length } }, watch: { list: { deep: true, handler (newValue, oldValue) { ...
阅读全文 »

JavaScript 中的算法

发表于 2019-05-06 | 分类于 javascript | | 阅读次数:
Introduction要真正掌握算法,就必须了解它们与数据结构的关系。数据结构和算法就像阴阳、水杯和水一样密不可分。没有杯子,水就不能被容纳。没有数据结构,我们就没有对象来应用逻辑。没有水,杯子是空的。没有算法,对象就不能被转换或消费。 在 JavaScript 中,算法只是一个函数,它将某个确定的数据结构输入转换为某个确定的数据结构输出。函数内部的逻辑决定了怎么转换。首先,输入和输出应该清楚地提前定义。这需要我们充分理解手上的问题,因为对问题的全面分析可以很自然地提出解决方案,而不需要编写任何代码。 一旦完全理解了问题,就可以开始对解决方案进行思考,需要那些变量?有几种循环?有那些 ...
阅读全文 »

Vue 基本概念

发表于 2019-05-06 | 分类于 vue | | 阅读次数:
data 为什么必须是函数?要 return 一个新的 data 对象,否则修改其中一个会影响其他组件 组件通信 父子组件通信:$on、$emit、provide/inject 非父子组件的通信: event bus、 vuex Vue SSR 基本原理客户端 entry-client 主要作用挂载到 DOM 上,服务端 entry-server 除了创建和返回实例,还进行路由匹配与数据预获取。webpack 打包客户端为 client-bundle,打包服务端为 server-bundle。服务器接收请求,根据 url 来加载相应组件,然后生成 html 发送给客户端。客户端 Vue 在浏 ...
阅读全文 »

Javascript 隐式类型转换

发表于 2019-05-05 | 分类于 javascript | | 阅读次数:
一、知识点显式类型转换1234567Number(mix)parseInt(string, radix)parseFloat(string)toString(radix)String(mix)Boolean()toFixed(radix) 隐式类型转换1234567isNaN++/-- +/-+ // +'' === 0* /%&& || !< > <= >=== != 以上前五个会调用显式类型里面的 Number(),后两个会调用显式类型的 Boolean()。 typeoftypeof 返回的六种数据类型:nu ...
阅读全文 »

记录

发表于 2019-05-05 | | 阅读次数:
用户从输入url到最终页面展示,这个过程都发生了什么?计算机网络:http请求组包、网络模型、dns解析、建立连接1234567891011用户输入url,浏览器缓存机制检查,http请求包结构,dns解析,连接建立,服务器端处理(如动态页面处理、静态页面处理、cdn相关知识),浏览器收到html内容怎么解析,怎么并行加载串行执行css、js,怎么构造渲染树渲染页面,怎么根据请求头把内容缓存到浏览器端,https、同构直出、service worker... 函数单一职责函数功能混乱,一个函数包含多个功能12345678function sendEmailToClients(clients) ...
阅读全文 »

Linux 常用命令

发表于 2019-05-05 | 分类于 linux | | 阅读次数:
ls 查看当前目录下的文件(或文件夹)12345-l:查看详细信息-a:查看隐藏文件-la:同时具备以上特点 pwd print working directory, 打印工作目录,它会显示我们当前所在的目录路径。 cd 目录切换12345cd ../ 返回上级目录cd ./ 返回当前目录cd / 返回根目录cd xxx 进入到指定文件夹cd E 进入到指定的磁盘 mkdir 创建文件夹 touch 创建一个空文件 rm 删除文件123-r # 递归删除(把当前文件夹中所有的后代元素遍历删除)-f # 强制删除-rf # 上面两种合并到一起,没有办法还原,慎重使用 vi 向指定 ...
阅读全文 »

Iterator 和 for-of

发表于 2019-04-29 | 分类于 javascript , es6 | | 阅读次数:
Iterator 接口Iterator 接口的目的,就是为所有数据结构,提供了一种统一的访问机制,即for...of循环。当使用for...of循环遍历某种数据结构时,该循环会自动去寻找并调用Symbol.iterator方法。也就是说,一种数据结构只要部署了Symbol.iterator属性,就被视为具有iterator接口,我们就称这种数据结构是“可遍历的”(iterable)。 Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回默认的遍历器。至于属性名Symbol.iterator,它是一个表达式,返回Symbol对象的it ...
阅读全文 »

Git 常用命令

发表于 2019-04-23 | 分类于 Git | | 阅读次数:
Git 的工作流程Git 是分布式版本控制系统,每一台客户端都是一个独立的 git 仓库(有 git 工作的全套机制)。一个 git 仓库分为三个区域: 1. 工作区:平时写代码的地方。就是你在电脑里能看到的目录。 2. 暂存区:代码暂时存储的地方。英文叫 stage 或 index。一般存放在.git目录下的 index 文件.git/index中,所以我们把暂存区有时也叫作索引 index。 3. 历史区(本地仓库版本库):生成版本记录的地方。工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。版本库又名仓库,英文名 repository,你可以简单理解成一个目录 ...
阅读全文 »
1234

38 日志
12 分类
12 标签
© 2018 — 2021 lzx