0%

本文属于原创文章,转载请注明–来自桃源小盼聊技术

代码不可能在第一次就写得完美,这是一个持续修改的过程,那么应该怎么来进行呢?
以下内容来自《重构-改善既有代码的设计》

是什么

  • 好代码的检验标准就是人们是否能轻而易举地修改它。
  • 由于预先做出良好的设计非常困难,想要既体面又快速地开发功能,重构必不可少。
  • 重构的意义就在于:你永远不必说对不起,只要把出问题的地方修补好就行了。
  • 重构过程的精髓所在:小步修改,每次修改后就运行测试。
  • 重构的最佳时机就在添加新功能之前。
  • 我不专门安排一段时间来重构,而是在添加功能或修复bug的同时顺便重构。
  • 与其猜测未来需要哪些灵活性,需要什么机制来提供灵活性,我更愿意只根据当前的需求来构造软件。
阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

起因

每次换工作写简历都是有点痛苦的事情,尤其是下载word模板,各种注册流程,有的还得买积分,冲会员,甚是不爽。就算下载好了,修改其中的一些细节也不太熟悉各种功能,由于长期不用word,早把很多设置功能抛之脑后。

忽然有一天灵感涌上,这种简易的模板样式,对于一个前端工程师来说,写个页面分分钟的事,只要能把html转成pdf格式这事就成了。

阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

关于flexible的第一篇介绍文章是大漠的《使用Flexible实现手淘H5页面的终端适配》。请先阅读这篇文章再来看本文。

三年前看的时候就一个感觉Perfect,还有这么神奇的操作,但是深入到原理就有点似懂非懂,向其他同学推荐的时候,总有些细节讲不清楚。究其原因是自己没有深入了解“为什么会产生这样的解决方案?”。

阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

最近因工作原因,需要重新配置开发环境。尝试过很多的开发工具,有些是尝鲜的,有些一直用下来了,只有时间和实际场景能让你知道,会不会长久地使用这个工具。我依然还会去尝试很多新工具,这次推荐前端的长期使用软件集合。

不分工种的工具

Homebrew

mac上的快速安装软件,软件包管理器。免去先下载、再安装的繁琐,安装只需要一行命令。

iTerm2

我最喜欢的命令行工具,好处体现在细节,用过才知道。再配合oh my zsh就更爽了。

阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

笔者语

作为一个程序员,当我们访问一个接口,服务器接收到并返回结果,那么中间的流程是怎么处理的呢?这个请求是如何到达服务器,服务器又是怎样返回内容的?

如果没有HTTP协议,接口请求具体实现的细节, 都需要每个客户端和服务器各自约定和实现,而自己的规则,又不能适用于别人。这给开发带来了极大的不便,HTTP就是为此而设计的。HTTP协议用来约定双方的行为规范,让相关开发者按照相同的规则来开发网站和工具。

HTTP协议就像发快递时填写的发货单,规定必须填写收货人,地址和手机号码,只有这样才能准确送给收货人。HTTP则是规定了如何在两台电脑间发送和接收超文本。

阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

Number

number.toExponential()

以指数表示法返回一个字符串,参数用来指定小数点后的位数。

1
2
3
var num = 123.456;
num.toExponential(); // "1.23456e+2"
num.toExponential(1); // "1.2e+2"

number.toFixed()

返回一个指定小数点后位数的字符串,参数默认为0。

1
2
3
4
5
6
7
var num = 123.456;
num.toFixed(); // "123"
num.toFixed(1); // "123.4"
num.toFixed(4); // "123.4560"

123.456.toFixed(); // "123";
+123.456.toFixed(); // 123 (由于操作符优先级,返回数字)
阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

字符串是Javascript最常用的数据类型,是五种基本数据类型之一(其他是number, boolean, null, undefined)。
我们常用的是字符串字面量形式。

检测是否为字符串

typeof直接去检测是不准确的,通用的类型检测方法又太过繁琐。
而借助valueOf()方法,则可以返回一个字符串字面量。(此方式也适用于number与boolean)

var str1 = 'hello';
var str2 = new String('world');

typeof str1; // string
typeof str2; // object
typeof str2.valueOf(); // string

其他类型转换为字符串

大部分情况下调用toString()方法即可,然后null和undefined则需要使用String()方法。

var num = 1;
   num.toString();       // '1'
   var other = String(null) // 'null'
阅读全文 »

本文属于原创文章,转载请注明–来自桃源小盼聊技术

接上一篇《爱上Javascript数组Array(一)——基础介绍》,这一篇详细介绍Array的所有方法。

所有数组的方法都定义在Array.prototype上,而Array.prototype本身也是一个数组。

array.concat()

浅复制一份当前数组,并把接收到的参数附加到新数组的末尾。原数组不改变。

语法

1
array.concat(value1, value2, ..., valueN)

参数为需要合并的数组或非数组值

1
2
3
4
5
6
7
8
var arr1 = [1, 2, 3];
var obj = {animal : 'monkey'};
var arr2 = arr1.concat([4, 5, 6], obj, [7, 8, 9]);
// arr1 [1, 2, 3]
// arr2 [1, 2, 3, 4, 5, 6, {animal : 'monkey'}, 7, 8, 9]

obj.animal = 'tiger';
// [1, 2, 3, 4, 5, 6, {animal : 'tiger'}, 7, 8, 9]

可以合并数组或非数组值,但是要注意如果包含对象,对象还是引用原来的对象。

阅读全文 »