#JavaScript

Mac

为什么是 Mac?

首先对于刚刚接触MAC的小伙伴,会有一段适应期,当你真正熟悉它、了解它你就会发现他的简单优雅。

熟悉 Mac

你可以通过下面这篇文章对 Mac OS X 有一个基础的了解。 Mac使用技巧

Mac OS 下开发环境配置

你可以按照 Mac OS X 配置指南 | Mac OS X Setup Guide 这篇文章来配置你的开发环境。

当然如果你觉得他太长,我们帮你列出了在前端开发中必不可缺的一些软件:

安装 Xcode

Xcode 是由苹果公司开发,运行在 Mac OS 上的集成开发工具(IDE),我们需要提前安装他避免后续安装其他软件造成的一些问题。Mac OS 下安装 Xcode

安装 HomeBrew (需要提前安装 Xcode)

Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况. Mac OS 下安装homebrew

1
2
udo vim /etc/hosts
151.101.108.133 raw.githubusercontent.com

安装 VSCode

我们通常使用 VSCode 进行开发。Mac OS 下安装 VS Studio Code

安装 Git

没有用过 Git? 还好意思说自己是程序员? Mac OS 下安装 Git

安装 nvm

我们的前端业务项目依赖不同的 Node 版本,为了以后的开发体验建议直接安装 nvm。 Mac OS 下安装 nvm

旅游电商专用词汇

  1. 什么是 OTA ?

1
Online Travel Agency 在线旅行社

网络广告术语

  1. CPC

1
2
3
4
5
6
7
CPC计费收入

=ad-click*acp=广告点击次数*平均点击价格

=ad-show*ctr2*acp=广告展示次数*每次展示点击数*平均点击价格

=refresh*asr*asn*ctr2*acp=刷新次数*每次刷新出现广告概率*每次刷新广告条数*每次展示点击数*平均点击价格

  1. ACP

1
Average Click Price 平均点击价格总消费/总点

  1. CPS

1
Cost Per Sales的方法是通过实际的销售量进行收费的,更适合购物类APP进行推广,但是需要精确的流量进行数据统计转换,很多软件都通过此类方式成功推广。

  1. CTR

1
CTR(Click-Through-Rate)即点击通过率,是互联网广告常用的术语,指网络广告(图片广告/文字广告/关键词广告/排名广告/视频广告等)的点击到达率,即该广告的实际点击次数(严格的来说,可以是到达目标页面的数量)除以广告的展现量(Show content)。

  1. CPT

1
每时间段成本。CPT是一种以时间来计费的广告,国内很多的网站都是按照“一个星期多少钱”这种固定收费模式来收费。

2019 年下半年经历了一家公司从爆发扩张阶段到人员紧缩的阶段,我们团队

2020 年我们可能经历了人类最大的瘟疫,

疫情

在 2019 年,

裸辞

顺丰

来北京之后学到的最重要的一点一定是「输出意识」。在技术论坛里看过的不代表自己理解掌握了,提高这些碎片化知识的转化率需要个人记录和实践,眼睛觉得看到的东西很简单、可是手不这么认为。「输出意识」的具体表现为文档、博客、一段验证性质的代码片段;甚至可以为自己吃过的某道菜和看过的电影和书籍都可以写自己的评价。

感情

恋爱

工作后接触到的业务方向一直是 B 端,基本上写了两年多的 web 页面,主要类型是复杂的 web 中后台系统。实际上业务是千变万化的,自己的学习重点要放在数据流的处理方式、流行框架的工作机制上。一方面要寻求更大的业务挑战,三年是一个槛如果目前的工作环境无法满足自己的需求那么就要考虑跳槽。另一方面探索 low code 这种业务处理模式,类似 uformformRender 的表单处理方案。

合租

08月27日

未来

当你老了,回顾一生,就会发觉:什么时候出国读书,什么时候决定做第一份职业、何时选定了对象而恋爱、什么时候结婚,其实都是命运的巨变。只是当时站在三岔路口,眼见风云千樯,你作出选择的那一日,在日记上,相当沉闷和平凡,当时还以为是生命中普通的一天。

系统而深入的获取知识

衡量程序员优劣的其中一个维度是基础是否牢固。你想摆脱简单的重复性劳动去负责更重要的模块基础这块是无法避免的。

js 中的 Promise 原理了解 FRP 才能理解的更深入;vue 的 keep-alive 组件使用了 LRU 算法;模板编译 client-server 模型是 web 开发的理论依据, 你对他掌握的如何取决于你自身网络协议的功底;AST (abstract syntax tree) 是编译原理中的理论、对操作系统了解的不够不管你写什么后端语言,也只会是个接口开发人员。

2020 年减少碎片化信息的获取,碎片化信息可以作为一个了解知识的入口但不能直接靠他来提升技能,利用业余时间看书或者线上 MOOC 的方式去系统的获取知识。也是避免 提前工作 ( overworking ) 情况的发生。

过度工作(overworking):劳动者提前透支自己的技能,被工作拖着走,这种情况下主观能动性会收到很大影响。

输出意识

来北京之后学到的最重要的一点一定是「输出意识」。在技术论坛里看过的不代表自己理解掌握了,提高这些碎片化知识的转化率需要个人记录和实践,眼睛觉得看到的东西很简单、可是手不这么认为。「输出意识」的具体表现为文档、博客、一段验证性质的代码片段;甚至可以为自己吃过的某道菜和看过的电影和书籍都可以写自己的评价。

业务

目前自己负责的

工作后接触到的业务方向一直是 B 端,基本上写了两年多的 web 页面,主要类型是复杂的 web 中后台系统。实际上业务是千变万化的,自己的学习重点要放在数据流的处理方式、流行框架的工作机制上。一方面要寻求更大的业务挑战,三年是一个槛如果目前的工作环境无法满足自己的需求那么就要考虑跳槽。另一方面探索 low code 这种业务处理模式,类似 uformformRender 的表单处理方案。

目前不是自己负责的但接触很多的

自己的第一家公司规模比较大,基础技术设施比较完备,所以可以只专心做一个系统甚至一个模块的开发,专注于开发语言本身。来到 Keep 后情况就大不同,年轻公司的基础技术平台建设几乎为零,自己也直接或间接的参与了公司的基础技术平台建设,从 SSO、BFF 代理服务到CI CD 平台、前端研发体系、全链路压测平台、运维体系、复杂工单的流转平台等等。

虚荣指标

虚荣指标对自己目标的达成有一定促进意义,所以 2020 年也给自己定几个虚荣指标督促自己:

1、 每天看书

  • 计划 《SICP》已完成 3 0 页(JavaScript 语言的开发者是 scheme 的狂热粉丝, SICP 曾是很多高校的基础读物,其中使用lisp 的一种方言 scheme 语言来教学, 可以提升对不同编程语言的系统性认识)

2、 学习一门新的编程语言(主要应用在 server)

  • 把 Java Spring Boot 应用在业务中,有条件就做起来。

3、 坚持每周刷题 leetcode

  • 「拳不留手,曲不离口」养家糊口的技能不能怠慢。

4、 github 每月活跃 >= 28 天

  • 纯粹的虚荣指标

5、 坚持写博客,持续输出

  • 可以当作个人的 OKR。

6、减少焦虑、理性看待各种博文。

众所周知 JavaScript 是一门基于原型、函数先行的多范式语言,它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。

想要知道如何实现 new 关键字我们就得搞清楚 new 做了什么。

JavaScript 中的 new 做了什么 ?

按照 spec ,new 依次做了以下 4 件事情:

  1. 创建一个对象 new Object
  2. 链接该对象(即设置该对象的构造函数)到另一个对象 ;
  3. 将步骤 1 新创建的对象作为 this 的上下文;
  4. 如果构造函数没有返回对象则返回 this

最终实现代码

1
2
3
4
5
6
function objFactory() {
var Constructor = [].shift.call(arguments)
var obj = Object.create(Constructor.prototype)
var ret = Constructor.apply(obj, arguments)
return (typeof ret instanceof Object || ret === null) ? ret : obj
}

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×