0%

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

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

不分工种的工具

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]

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

阅读全文 »

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

Javascript,一门神奇的语言,它的数组也同样独特。我们要去其糟粕,取其精华,把常用的最优实践总结出来。如有错误,请指出。

javascript数组是一种类数组的对象,拥有对象的特性。当属性名是小而连续的整数时,应该使用数组,否则,使用对象。

数组来源

所有的数组都是Array构造出来的,我们来测试一下constructor这个属性。

1
2
3
var arr = [];
arr.constructor === Array; // true
arr.constructor === Array.prototype.constructor; // true

创建数组

1
2
3
4
5
6
7
8
9
10
11
//数组字面量方式
var arr1 = [1, 2, 3]; // [1,2,3]

//构造函数方式
var arr2 = new Array(); // [] 空数组
var arr3 = new Array('9'); // ["9"] 一个字符串元素
var arr4 = new Array(9); // [] 数组长度length为9
var arr5 = new Array([9]); // [[9]] 相当于二维数组
var arr6 = new Array(1, 2, 3); // [1, 2, 3]
var arr7 = new Array(1, function f(){}, {o : 6}, null,undefined,true);
// 数组可以存储任意混合数据类型

由于arr4的方式,当只有一个数字参数传递到Array的构造函数中,构造函数会返回设置了length属性的空数组。所以推荐使用数组字面量方式,短小而简洁。

阅读全文 »

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

本文的兼容性包含了更多的意思,一些和网站开发注意的实际问题。对注重seo的网站帮助更多一些。

关于浏览器

现在的前端开发已经开始放弃兼容ie6,ie7,并且也在有条件的放弃ie8。像chrome这样的现代浏览器对新特性支持度都很棒,只是在某些新特性上的实现方式并不太统一。

这是百度统计最近六个月的数据,ie6和ie7合起来还是有9.03%,360是被统计到各种内核中了。

compatibility-1

而现在需要我们考虑的就是ie浏览器了。对于ie6,ie7需要去写很多hack代码,非常丑陋并且还要花费大把的时间去调试,然而现在真正使用这两个浏览器的人却是不多的,与其这样还不如把精力投入到大部分用户群体上,为他们提供更好的体验。

所以是时候放弃兼容他们了,但是我们也不能把使用这两个浏览器的用户放弃掉,所以我们应该加一些让他们更新浏览器的提示,像下面这样:

阅读全文 »

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

socket.io非常适合做聊天室,但英文官网读起来还是有一定的障碍,特此翻译。如有误点,欢迎指出。

1
原地址:http://socket.io/get-started/chat/

正文如下:

开始:聊天

本篇文章,我们将一起来创建一个简单的聊天应用。它几乎不要求你提前掌握Node.JS 或 Socket.IO的知识,适合任何人来尝试。

介绍

用LAMP这种传统的方式来搭建一个聊天应用是很难的,它包括轮询服务器的变化,保持跟踪时间戳,比socket.io慢得多。

Sockets一直是最具实时性的聊天系统解决方案,在客户端和服务端提供了一种双向通信通道。

这意味着服务器能发送消息给客户端。当你发出一条消息时,服务端将获取它,并将它发送给其他所有在线客户端。

阅读全文 »