罗晨汛

罗晨汛

移动互联网开发者

我们说程序=数据结构+算法,这表明了数据结构在一门语言中的重要性,他将是你所写的程序的主要构成。而变量是数据结构的载体,数据结构常常是一块特定结构的内存空间,而要引用这段内存空间,我们就需要操作变量。因为JS是一门弱类型的语言,因此它的变量的概念有点像C中的指针或Java中的引用,表示其内容就是其指向的这段内存结构。

本章我们将先了解JavaScript中的数据类型,不同数据类型代表不同的意义、也占用不同的内存空间。再看看变量,他如上面说的代表一份内存的载体,也代表着一个作用域。最后我们看下算法,js中的控制流程与函数。

阅读全文 »

Yarn 是 Facebook 发布的一款依赖包安装工具。是一个新的快速安全可信赖的可以替代 NPM 的依赖管理工具。官方对其的介绍:

  • 与 npm 兼容

  • 速度超快 (可离线下载)
    Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。

  • 超级安全
    在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。

  • 超级可靠
    使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。

  • 扁平模式
    将依赖包的不同版本归结为单个版本,以避免创建多个副本。

1 安装

直接使用 npm 安装,也可以用 brew 安装

安装 yran
1
2
3
4
5
npm install -g yarn

or

brew install yarn

1.1 升级 yarn

1
npm install yarn@latest -g

2 基本使用

2.1 初始化一个新项目

1
yarn init

2.2 安装项目的全部依赖

1
2
3
4
5
yarn

or

yarn install

与 npm 同样,依赖包会安装到 node_modules 目录中。使用 yarn 将会自动生成 yarn.lock

2.3 添加依赖包

1
2
3
4
5
6
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

yarn global add [package]
yarn global upgrade [package]

将依赖项添加到不同依赖项类别中

分别添加到 devDependencies、peerDependencies 和 optionalDependencies 类别中:

1
2
3
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional

2.4 升级依赖包

1
2
3
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

2.5 移除依赖包

1
yarn remove [package]

3 工程运行相关

3.1 启动、编译、测试服务

1
2
3
4
5
6
7
8
9
10
11
12
yarn start
Starts the development server.

yarn build
Bundles the app into static files for production.

yarn test
Starts the test runner.

yarn eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!

4 引用

  1. yarn 中文官网
  2. yarn github

1 例句摘抄

2 单词

2.1 ancestor

| BrE ˈansɛstə, AmE ˈænˌsɛstər |

  1. (person) 祖先 zǔxiān
  2. figurative (version) 原型 yuánxíng

2.2 descendant

| dɪˈsɛnd(ə)nt |

noun 后代

2.3 architect

| BrE ˈɑːkɪtɛkt, AmE ˈɑrkəˌtɛkt |

  • noun
  1. (designer of buildings) 建筑设计师 jiànzhù shèjìshī
  2. figurative (deviser) 设计师 shèjìshī

2.4 Architecture

| BrE ˈɑːkɪtɛktʃə, AmE ˈɑrkəˌtɛk(t)ʃər |

  • noun
  1. uncountable (designing of buildings) 建筑学 jiànzhùxué
  2. uncountable (style of a building) 建筑风格 jiànzhù fēnggé
  3. countable (structure) 结构 jiégòu
  4. countable Computing 体系结构 tǐxì jiégòu

2.5 shim

英 [ʃɪm] 美 [ʃɪm]

n. 楔子;垫片;填隙片
v. 用填隙片填入

Be sure to shim your engine correctly.
一定要正确垫片你的引擎。

上一篇中我们讨论了 Block 的来源,它是 OC 中对闭包的实现。Block 的设计初衷及其特性,主要 3 个特性:

1.可嵌套定义,可在函数及 Block 内定义 Block;
2.Block 内可访问外层变量,这里我们上篇介绍了有 截取变量__block 变量
3.方法传递,包括了后面会介绍的 Block 的堆拷贝。

那根据我们的 “三问精神”,这篇开始我们就来深究一下 Block 本身及这些特性是怎样设计并实现的。

这一篇中,我们将为深入 Block 源码做好各种准备,它将为我们后续对 Block 的研究或是学习其它技术提供知识储备与帮助。

阅读全文 »

对于一个 iOS 研发来说,Block 绝对是是日常使用率最高的几种工具之一。不知道大家在平常的使用之余有没有想过,Block 到底是什么?它是怎样设计出来的,底层是如何实现的?

从本章起,我们就来一起探究一下 iOS 中的 Block 技术。

Block 就是带有局部变量 (也叫自动变量) 的匿名函数。

上面这个也许是我们见过最多的 Block 定义了。老实说,可能你本来还大概知道 Block 是个什么东西,听到这个定义之后更懵逼了,局部变量、匿名函数,什么鬼?我们不妨抛开此定义,细想下,Block 为什么存在,是为了解决什么问题?

阅读全文 »

1 例句摘抄

We’re taking a week off for Christmas so there won’t be an issue on Boxing Day

  • take a week off: 休假一周
  • Boxing Day: n. 节礼日;圣诞节后的第一个工作日

2 单词

2.1 nowadays

  • nowadays ['naʊədeɪz]
    1
    2
    adv. 现今;时下
    n. 当今

Nowadays people are rarely shocked by the sex they see on television.
如今人们在电视上看见性爱镜头不太会感到吃惊了。

2.2 revise

1
2
3
4
5
6
7
8
9
10
11
12
vt. 修正;复习;校订
vi. 修订;校订;复习功课
n. 修订;校订

-- 泛伸
adj.
revised 改进的
n.
revision [印刷] 修正;复习;修订本
revisionism 修正主义
revisal 修正;修订
reviser 校订者;修订者

I can see I will have to revise my opinions of his abilities now.
我明白我现在不得不改变对他的能力的看法了。

a revised edition of a textbook 课本的修订版

2.3 nevertheless

1
adv. 然而,不过;虽然如此

Nevertheless not everyone can spell over it.
然而并不是每个人都能理解。

2.4 dictate

1
2
3
4
英  [dɪk'teɪt]

vt. 命令;口述;使听写
n. 命令;指示

He dictated a letter to his secretary. 他向秘书口授信稿

dictated to 任意指使某人;向某人发号施令
She refused to be dictated to by anyone. 她不愿受任何人摆布

2.5 right before

1
刚好就在......之前

Right before you first step into a classroom or onto a stage, you think that all eyes are on you.
就在你第一次跨进教室或第一次登上舞台的时候,你会认为所有的眼睛都盯着你。

2.6 scaffold

1
2
n. 脚手架;鹰架;绞刑台
vt. 给…搭脚手架;用支架支撑

Let me cover it with plastic because rain is dripping off the scaffold.
让我们用塑料把它盖起来,因为雨从脚手架上滴下来了。

1 例句摘抄

We’re taking a week off for Christmas so there won’t be an issue on Boxing Day

  • take a week off: 休假一周
  • Boxing Day: n. 节礼日;圣诞节后的第一个工作日

2 单词

2.1 consults

  • consults /kənˈsʌlt/
    1
    商量,咨询,查阅

Consult your doctor about how much exercise you should get.
咨询你的医生你应做多少运动。

He needed to consult with an attorney.
他需要和律师咨询。

0%