<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>welefen的随笔</title>
	<atom:link href="http://www.welefen.com/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.welefen.com</link>
	<description>前端打杂者@baidu</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:28:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>javascript中toInt的几种方法</title>
		<link>http://www.welefen.com/javascript-toint-method.html</link>
		<comments>http://www.welefen.com/javascript-toint-method.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 08:20:26 +0000</pubDate>
		<dc:creator>welefen</dc:creator>
				<category><![CDATA[前端开发]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tonumber]]></category>

		<guid isPermaLink="false">http://www.welefen.com/?p=166</guid>
		<description><![CDATA[在javascript中，如果要将一个字符串转变成数字，一般是通过parseInt这个函数进行。但如果对输入串有很高确定性的话，其实可以用更简单的方法。如：只是将字符串“123”变成数字123。下面给出具体的说明。 parseInt函数 parseInt函数是专门用来处理将字符串变成整型的。具体请见：ECMA-262 P114。 支持八进制和十六进制，如：&#8217;0111&#8242;，&#8217;0&#215;111&#8242;。 支持非正数。如：&#8217;-111&#8242;。 支持数字后还有字符串，如：&#8217;111abc&#8217;。 支持第二个参数，是传递的转换进制，数值为2到36。如：parseInt(&#8217;111&#8242;,2)，即将111转换为二进制。 忽略前面的空白字符，如：\n，\t，\r。 如果无法将字符串转换为一个数值，则返回NaN。 一元操作符“+” 在javascript中，“+”号即可以作为二元操作符，又可以作为一元操作符。作为一元操作符的时候，就是将对象变成数值形式的。具体见：ECMA-262 P82。 其实执行+的时候，调用JS引擎的ToNumber函数。 true/false转成1/0。 null转成0。 支持非正数。 忽略前面的空白字符。 支持16进制，八进制会当十进制处理。 “111&#8243;转换成111，其他情况基本都是 NaN。 Number构造器 当number构造器当函数使用时，是将其他对象转化成数值。转换原理跟一元操作符”+”完全一样，因为都是调用JS引擎ToNumber函数。所以这个方式基本不用，因为使用它比使用“+”要多7个字符。 二进制操作符“&#124;” 使用二进制操作符“&#124;”结合0可以将对象转换成整形的。如&#8217;111&#8242;&#124;0。 true/false转换成1/0。 忽略前面的特殊字符。 支持16进制，八进制会当十进制处理。 null转成0。 支持非正数。 不能转换成整型的，则返回为0。如：&#8217;111abc&#8217;结果为0。 二进制操作符“&#62;&#62;” 使用二进制操作符“&#62;&#62;”结合0可以将对象转换成整形的。如&#8217;111&#8242;&#62;&#62;0。 true/false转换成1/0。 忽略前面的特殊字符。 支持16进制，八进制会当十进制处理。 null转成0。 支持非正数。 不能转换成整型的，则返回为0。如：&#8217;111abc&#8217;结果为0。 二进制操作符“&#62;&#62;&#62;” 使用二进制操作符“&#62;&#62;&#62;”结合0可以将对象转换成整形的。如&#8217;111&#8242;&#62;&#62;&#62;0。 true/false转换成1/0。 忽略前面的特殊字符。 支持16进制，八进制会当十进制处理。 null转成0。 非正数的时候则转换为2^32-概数的绝对值。如：&#8217;-111&#8242;&#62;&#62;&#62;0为4294967185。 不能转换成整型的，则返回为0。如：&#8217;111abc&#8217;结果为0。 测试结果 对于转换的对象数字加字符或者其他类型的，只能用parseInt转换。 对于一般的转化，如将“123”转化成123时，有如下的测试结果： parseInt + &#124; &#62;&#62; &#62;&#62;&#62; [...]]]></description>
		<wfw:commentRss>http://www.welefen.com/javascript-toint-method.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript中关于try,finally控制语句的使用</title>
		<link>http://www.welefen.com/javascript-try-finally.html</link>
		<comments>http://www.welefen.com/javascript-try-finally.html#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:17:40 +0000</pubDate>
		<dc:creator>welefen</dc:creator>
				<category><![CDATA[前端开发]]></category>
		<category><![CDATA[finally]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[try]]></category>

		<guid isPermaLink="false">http://www.welefen.com/?p=47</guid>
		<description><![CDATA[几乎每个脚本语言都有try,catch,finally控制语句。try,catch控制语句主要是对有异常的程序控制，这里不在详细描述。主要讲述下try,finally的妙用。 在正文之前，给出2个已有的两个应用（2篇文章都是在51JS中），如下： 1、try finally 妙用,防止内存泄漏。 2、月影发的“某人发给我的邪恶代码”，可以看#16楼 lifesinger的回复。 问题的表面 也许你对上面2个应用还没有真正的明白，也可能你看到这样的代码心里忍不住和我一样惊叹一声“绝”。那么为什么能够写出这样的代码，这样的代码又是怎样工作的呢？一切从ECMA-262开始说起。 揭开面纱 如果你还不知道什么是ECMA-262或者还没有阅读过这个标准，那么我建议你还是尽快花点时间好好看看，有兴趣更要研究。你可以从它的官方网站下载，如果不想看PDF版本的话可以打印出来的。我以前看的时候就是打印出来慢慢研究的。 在ECMA262的12.14 (P70)The try statement有： The production TryStatement : try Block Finally is evaluated as follows: 1. Evaluate Block. 2. Evaluate Finally. 3. If Result(2) .type is normal, return Result(1). 4. Return Result(2). 上述中第一步和第二部分别是计算Block和Finally的值。第三步是进行第二步结果类型的判断，如果类型是normal的话，返回第一步的结果否则返回第二步的结果。 这里有两点比较特殊，一个是返回结果在进行计算Finally块后才进行的，二是第二步的结果类型是normal的时候，返回第一步的结果，否则返回第一步的结果。 对于第一点，前面的防止内存泄露就是一个很好的应用。充分使用了这一特性。 那第二步的结果类型什么时候是normal呢。这里的类型是实现JS引擎层面上的类型，用JS是获取不到的。 JS引擎层面的类型在ECMA262中的8.9进行了定义： 8.9 The Completion Type The internal Completion [...]]]></description>
		<wfw:commentRss>http://www.welefen.com/javascript-try-finally.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using eaccelerator
Database Caching 1/9 queries in 0.007 seconds using disk: basic
Object Caching 365/376 objects using disk: basic

Served from: welefen.com @ 2012-02-08 03:33:06 -->
