在javascript中,如果要将一个字符串转变成数字,一般是通过parseInt这个函数进行。但如果对输入串有很高确定性的话,其实可以用更简单的方法。如:只是将字符串“123”变成数字123。下面给出具体的说明。
parseInt函数
parseInt函数是专门用来处理将字符串变成整型的。具体请见:ECMA-262 P114。
- 支持八进制和十六进制,如:’0111′,’0×111′。
- 支持非正数。如:’-111′。
- 支持数字后还有字符串,如:’111abc’。
- 支持第二个参数,是传递的转换进制,数值为2到36。如:parseInt(’111′,2),即将111转换为二进制。
- 忽略前面的空白字符,如:\n,\t,\r。
- 如果无法将字符串转换为一个数值,则返回NaN。
继续阅读 »
来北京已经有一个多星期了,之前住在同学那,生活时间跟同学走。现在自己搬了地方,是要规范一下自己的生活了,虽然年轻但还是要珍惜身体,关注健康。
作息时间
- 上班时间早上8点到8点20起床,喝杯蜂蜜水,准备上班。
- 早餐在公司吃。
- 在公司喝枸杞菊花决明子茶。
- 中餐后去健身房稍微锻炼下,主要是炼下臂力和骑下自行车(轻微运动)。
- 在公司餐厅饮食还可以的话,中餐和晚餐也在餐厅解决,尽量吃清淡的食物。
- 无特殊情况,晚上8点到9点之间回家。
- 回家后稍微上会网,喝杯蜂蜜水,洗澡上床睡觉(在11点之前)。
继续阅读 »
到目前为止,javascript中array还没有内置的unique方法,本来这篇文章很早就写了,但由于之前的虚拟主机忘记续费导致数据丢了,前几天JerryQu问了我这个问题,觉得可能还有其他人要,这里在写出来,备大家参考。
实现方式
这里给出2中实现方式。一种是大家应该都知道的indexOf检测的方式,另一种是结合lastIndexOf和splice实现方式。
//首先给Array对象原型上添加indexOf和lastIndexOf方法.(如果没有的话)
if(!Array.prototype.indexOf){
Array.prototype.indexOf = function(element, index){
var length = this.length;
if(index == null){
index = 0;
}else{
index = +index || 0;
if(index < 0) index+= length;
if(index < 0) index = 0;
}
for(var current;index<length;index++){
current = this[index];
if(current === element) return index;
}
return -1;
}
}
if(!Array.prototype.lastIndexOf){
Array.prototype.lastIndexOf = function(element, index){
var length = this.length;
if(index == null){
index = length - 1;
}else{
index = +index || 0;
if(index < 0) index+= length;
if(index < 0) index = -1;
else if(index >= length) index = length - 1;
}
for(var current;index>=0;index--){
current = this[index];
if(current === element) return index;
}
return -1;
}
}
//很常见的实现方式
var arrayUnique1 = function(arr){
for(var i=0,len=arr.length,result=[],item;i<len ;i++){
item = arr[i];
if(result.indexOf(item) < 0) {
result[result.length] = item;
}
}
return result;
}
//通过lastIndexOf和splice方法实现方式
var arrayUnique2 = function(arr){
var length = arr.length;
while(--length){
//如果在前面已经出现,则将该位置的元素删除
if(arr.lastIndexOf(arr[length],length-1) > -1) {
arr.splice(length,1);
}
}
return arr;
}
</len>
继续阅读 »
Sina App Engine(简称SAE)是新浪的开放云计算平台,相对于Google App Engine支持Java和Python,SAE支持目前非常流行的PHP+Mysql。SAE的目标是实现互联网应用在开发运维上的无缝整合,为App开发者提供稳定、快捷、透明、可控的服务化的平台,同时减少开发者的开发和维护成本。SAE目前还是新浪公司的内部测试版本,注册是要邀请码的。但还是通过关系弄到了个邀请码,不要鄙视偶。

sina app engine
本文只是简单的介绍下SAE的情况,之后我会基于这个平台写几个简单的应用,然后分享出来。
SAE应用在线管理平台: http://sae.sina.com.cn
SAE官方博客: http://blog.sae.sina.com.cn 继续阅读 »
昨天,魅族官方论坛泄露了新版的UI。得之消息后,马上下载下来安装。试用了下,虽然某些功能出现不稳定或者死机的情况。但UI还是非常漂亮的。下面以图试之。

锁定界面
继续阅读 »
几乎每个脚本语言都有try,catch,finally控制语句。try,catch控制语句主要是对有异常的程序控制,这里不在详细描述。主要讲述下try,finally的妙用。
在正文之前,给出2个已有的两个应用(2篇文章都是在51JS中),如下:
1、try finally 妙用,防止内存泄漏。
2、月影发的“某人发给我的邪恶代码”,可以看#16楼 lifesinger的回复。
继续阅读 »
昨天竟然收到了google wave发送给我的邀请,原因竟然是我给了他们很多回馈,貌似我是瞎点的哈。原文如下:
Thank you for signing up to give us early feedback on Google Wave. We’re happy to give you access to Google Wave and are enlisting your help to improve the product.
有兴趣你也可以试试,说不定也可以弄到账号哦。最重要的是一般只有8个Email提名,这个有20个哦。
继续阅读 »
现在的互联网网站,几乎都有注册的功能。在注册的时候必不可少的两项就是用户名和密码了。用户名的组成形式多种多样,如:昵称、邮箱、手机号等等。本文主要讨论的用户密码问题。
继续阅读 »
从google发布出chrome os的消息到网上多次泄露,现在chrome os终于和我们见面了。此刻这个神秘的面纱终于揭开了。我们来看看她到底是个什么样子。目前的版本是0.4.207。
从chrome os的介绍页,我们可以知道chrome os是基于linux内核的,但还不知道是基于什么发行版或者是自己重弄个发行版。
你可以从http://sites.google.com/site/chromeoslinux/download下载virtual appliance或者Live CD image。我这里下载的是virtual appliance,准备在VirtualBox中安装。如果你还没有的话,可以从http://www.virtualbox.org/wiki/Downloads下载。下面来看看在VirtualBox中具体的安装过程。
下载后的文件是Chrome_OS.i686-0.4.207.vmx.tar.gz,解压后有两个文件。Chrome_OS.i686-0.4.207.vmdk和Chrome_OS.i686-0.4.207.vmx。
继续阅读 »