sakulanbo


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索
close

【译】RxJS Pipeable Operators - Pipe

发表于 2018-04-11   |     |   阅读次数

Pipeable Operators

从版本5.5开始,我们发布了”pipe operators”,可以直接在rxjs/operators访问操作符。 与rxjs/ add/operator/*中的操作符相比,这仅仅是一种更好的方法来引入所需的操作符。

注意:通过rxjs/operators引入的操作符,如果你的构建程序不更改配置的话,最后打包的文件会变大,不过没关系,Known Issues部分会给出解决办法。

改名的操作符

由于操作符可独立于Observable对象使用,操作符不能与JavaScript关键字冲突。 因此对某些操作符的可移植版本的名称进行更改。 有以下操作符:

  1. do -> tap
  2. catch -> catchError
  3. switch -> switchAll
  4. finally -> finalize
阅读全文 »

Javascript总结

发表于 2016-10-11   |   分类于 javascript   |     |   阅读次数

对象

对象使用和属性

JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined。

1
2
3
4
5
6
false.toString(); // 'false'
[1, 2, 3].toString(); // '1,2,3'

function Foo(){}
Foo.bar = 1;
Foo.bar; // 1

一个常见的误解是数字的字面值(literal)不能当作对象使用。这是因为 JavaScript 解析器的一个错误, 它试图将点操作符解析为浮点数字面值的一部分。

1
2.toString(); // 出错:SyntaxError

有很多变通方法可以让数字的字面值看起来像对象。

1
2
3
2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算

对象作为数据类型

JavaScript 的对象可以作为哈希表使用,主要用来保存命名的键与值的对应关系。

使用对象的字面语法 - {} - 可以创建一个简单对象。这个新创建的对象从 Object.prototype 继承下面,没有任何自定义属性。

1
2
3
4
var foo = {}; // 一个空对象

// 一个新对象,拥有一个值为12的自定义属性'test'
var bar = {test: 12};

访问属性

有两种方式来访问对象的属性,点操作符或者中括号操作符。

1
2
3
4
5
6
7
8
9
var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten

var get = 'name';
foo[get]; // kitten

foo.1234; // SyntaxError
foo['1234']; // works

两种语法是等价的,但是中括号操作符在下面两种情况下依然有效

  • 动态设置属性
  • 属性名不是一个有效的变量名(译者注:比如属性名中包含空格,或者属性名是 JS 的关键词)

删除属性

删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真正的删除属性, 而仅仅是移除了属性和值的关联。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var obj = {
bar: 1,
foo: 2,
baz: 3
};
obj.bar = undefined;
obj.foo = null;
delete obj.baz;

for(var i in obj) {
if (obj.hasOwnProperty(i)) {
console.log(i, '' + obj[i]);
}
}

上面的输出结果有 bar undefined 和 foo null - 只有 baz 被真正的删除了,所以从输出结果中消失。

属性名的语法

1
2
3
4
var test = {
'case': 'I am a keyword so I must be notated as a string',
delete: 'I am a keyword too so me' // 出错:SyntaxError
};

对象的属性名可以使用字符串或者普通字符声明。但是由于 JavaScript 解析器的另一个错误设计, 上面的第二种声明方式在 ECMAScript 5 之前会抛出 SyntaxError 的错误。

这个错误的原因是 delete 是 JavaScript 语言的一个关键词;因此为了在更低版本的 JavaScript 引擎下也能正常运行, 必须使用字符串字面值声明方式。

阅读全文 »

前端技术栈

发表于 2016-10-06   |   分类于 FE技术文章   |     |   阅读次数

浏览器环境

IE6~8 IE9+ Chrome Firefox Safari Opera Edge

HTTP

协议URI Cache Session Cookie Request Response

HTML

W3C HTML4.01 HTML5 DOM 语义化

CSS

CSS1~3 选择器 盒模型 Flex 媒体检测 响应式 渲染引擎

阅读全文 »

【转】用javascript优雅的操作cookie

发表于 2016-08-08   |     |   阅读次数

像操作Storage对象一样操作cookie

作为一个格式化过的字符串,cookie的值有时很难被自然地处理。下面的库的目的是通过定义一个和Storage对象部分一致的对象(docCookies),简化document.cookie 的获取方法。它提供完全的Unicode支持。

阅读全文 »

document.anchors,document.links,document.getElementsByTagName("a")的区别

发表于 2016-08-08   |     |   阅读次数

document.anchors返回得到的数组是所有具有name属性的a标签集合

1
<a name="content">内容</a>

document.links返回得到的数组是所有具有href属性的a标签和area标签集合

1
<a href="http://www.baidu.com target="_blank">百度</a>

document.getElementsByTagName(“a”)返回得到的数组是所有a标签

1
2
3
<a name="anchor"></a>
<a href="anchor"></a>
<a></a>

123
Lostlover

Lostlover

博客

11 日志
3 分类
8 标签
GitHub malong
© 2016 - 2019 Lostlover