0%

什么是 ui-router

不同于 ng-router 基于 url 的路由系统, ui-router 提供了一个基于 state 状态机的路由方式。它可以实现在不改变 url 情况下更新视图中局部内容,也可以在一个页面内嵌套并更新多个视图(状态的嵌套,这是相对于 ng-router 的一大优势),使用 ui-router 可以轻松应对复杂场景的页面应用。

Read more »

服务是什么

控制器的生命是有限的,在需要时才被实例化,一旦不需要就被销毁以节省内存提升性能。每次切换或者重新加载视图的时候当前控制器就会被 AngularJS 销毁。

如果需要在应用的整个生命周期中保持数据就需要使用服务,使用它在控制器之间通信,并保持数据的一致性。

服务是一个单例对象,在每一个应用中只会被初始化一次(被$injector实例化)。

Read more »

Promise 是什么

Promise 是抽象异步处理对象以及对其进行各种操作的组件。
Promise 提供了一种可以使用对象和方法来代替回调函数的异步事件处理方法。

Read more »

prototype 和原型链

如下代码中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function Box(){
this.a=[]; //实例变量
this.fn=function(){ //实例方法
}
}
var box1=new Box();
box1.a.push(1);
box1.fn={};
console.log(box1.a); //[1]
console.log(typeof box1.fn); //object

var box2=new Box();
console.log(box2.a); //[]
console.log(typeof box2.fn); //function

在这段代码中,我们注意到,当修改了box1fn之后box2fn并没有发生改变。由于数组和函数都是对象,是引用类型,所以说明此处不同对象的属性和方法同名但并不指向同一个引用而是对类定义的属性和方法的拷贝。这对于属性来说很正常,但是对于函数来说就很不合理,因为同一个类的对象中的函数做的都是相同的事情,却保存着不同的引用,占据了不该占用的空间。protoype 就是为了解决这个问题出现的。

Read more »

Javascript的单线程机制。在现有浏览器环境中,Javascript执行引擎是单线程的,主线程的语句和方法,会阻塞定时任务的运行,执行引擎只有在执行完主线程的语句后,定时任务才会实际执行,这期间的时间,可能大于注册任务时设置的延时时间。在这一点上,Javascript与Java/C#的机制很不同。

Read more »

做编译器的代码生成器部分的时候一定会使用到汇编代码,特在此总结一些简单的汇编语言知识点。以能看懂常见的汇编代码为目的,不做深入探究。

学习一种的汇编语言,必须了解这种 CPU 的寄存器、寻址方式以及各种指令。我们就先从寄存器开始着手吧。

Read more »

属性

class 可以拥有属性。属性分为两种,存储属性和计算属性。

存储属性

最简单的情形,作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值。存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述)。

当定义存储属性时,你可以提供一个默认值,这些在“默认属性值”描述。在初始化过程中你也可以设置或改变存储属性的初值。这个准则对常量存储属性也同样适用(在“初始化过程中改变常量属性”描述)

Read more »

Awesome

原文在此 翻译 by skyfly.xyz

这是个精心编排的列表,它包含了优秀的 iOS 框架,库,教程,XCode 插件,组件等等。

这个列表分为以下几个部分:框架( Frameworks ),组件( Components ),测试( Testing )和其他的开源项目,免费的和付费的服务。每个部分中的项目没有先后顺序,均是按照提交的先后顺序排列的。如果你想为这个列表作出贡献,请阅读这个指南

Swift 语言写成的项目会被标记为 ,AppleWatch 的项目则会被标记为 。你可以自由添加你的项目。

内容

Read more »

? 和 ! 是什么

接触 Swift 的小伙伴们肯定对 ?! 这俩符号不陌生。他们广泛地出现在 iOS SDK 的各个地方。IDE 也会自动补全这两个家伙。但是这两个家伙到底是啥?

Read more »

我们知道 Objective-C 的最显著的特性就是强大的运行时能力,这使得 Objective-C 几乎是完全灵活的一本语言。强大的自省,反射,运行时的消息派发,KVC,KVO 都让这个有着几十年历史的语言依然焕发着生机。Swift 作为一门现代化的编程语言,是十分安全的语言。绝大多数的内容都是在编译期就已经决定了的。这使得 Swift 的运行时灵活性有所折扣。但需求总是千变万化的,运行时特性往往能起到四两拨千斤的强大作用,所以 Swift 还是引入了一些动态特性,我们来逐一看一下。

Read more »