﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-C小加-随笔分类-JavaScript</title><link>http://www.cppblog.com/cxiaojia/category/20618.html</link><description>厚德 博学 求真 至善
The bright moon and breeze</description><language>zh-cn</language><lastBuildDate>Tue, 30 Jul 2013 04:31:36 GMT</lastBuildDate><pubDate>Tue, 30 Jul 2013 04:31:36 GMT</pubDate><ttl>60</ttl><item><title>重新认识JavaScript</title><link>http://www.cppblog.com/cxiaojia/archive/2013/07/30/202240.html</link><dc:creator>C小加</dc:creator><author>C小加</author><pubDate>Tue, 30 Jul 2013 04:19:00 GMT</pubDate><guid>http://www.cppblog.com/cxiaojia/archive/2013/07/30/202240.html</guid><wfw:comment>http://www.cppblog.com/cxiaojia/comments/202240.html</wfw:comment><comments>http://www.cppblog.com/cxiaojia/archive/2013/07/30/202240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cxiaojia/comments/commentRss/202240.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cxiaojia/services/trackbacks/202240.html</trackback:ping><description><![CDATA[&nbsp; &nbsp;JavaScrpit在我眼中一直是web前端脚本语言，而这段时间的一些工作，让我对JavaScript有了一个全新的认识。<br /><br />&nbsp;&nbsp;&nbsp;公司准备启动的一个手游项目，服务器端准备使用网易的开源框架pomelo。pomelo是基于Node.js的高性能,分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件（库和工具包），可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。 pomelo不但适用于游戏服务器开发， 也可用于开发高实时web应用，它的分布式架构可以使pomelo比普通的实时web框架扩展性更好。<br /><br />&nbsp;&nbsp;&nbsp;网易的架构师们选择了node.js作为服务器端架构的核心，说明了Node.js作为后端的Javascript运行环境一定有它自己的优越性。<br /><br />&nbsp;&nbsp;&nbsp;提到Javascript，大家首先想到的是日常使用的浏览器，现代浏览器包含了各种组件，包括渲染引擎、Javascript引擎等，其中Javascript引擎负责解释执行网页中的Javascript代码。作为Web前端最重要的语言之一，Javascript一直是前端工程师的专利。不过，Node.js是一个后端的Javascript运行环境（支持的系统包括Lnux、Windows、Mac），这意味着你可以编写系统级或者服务器端的Javascript代码，交给Node.js来解释执行。<br /><br />&nbsp;&nbsp;&nbsp;Node.js支持的语言是JavaScrpit，之所以选择JavaScrpit作为服务器端运行语言理由如下：<br /><br />&nbsp;&nbsp;&nbsp;1.Javascript作为前端工程师的主力语言，在技术社区中有相当的号召力。而且，随着Web技术的不断发展，特别是前端的重要性增加，不少前端工程师开始试水&#8221;后台应用&#8220;，在许多采用Node.js的企业中，工程师都表示因为习惯了Javascript，所以选择Node.js。<br /><br />&nbsp;&nbsp;&nbsp;2.Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程，从helloworld例子中我们可以看到回调函数采用了匿名函数的形式来实现，很方便。闭包的作用则更大，看下面的代码示例：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br /><span style="color: #0000FF; ">var</span>&nbsp;hostRequest&nbsp;=&nbsp;http.request(requestOptions,<span style="color: #0000FF; ">function</span>(response)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;responseHTML&nbsp;='';<br />&nbsp;&nbsp;&nbsp;&nbsp;response.on('data',&nbsp;<span style="color: #0000FF; ">function</span>&nbsp;(chunk)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;responseHTML&nbsp;=&nbsp;responseHTML&nbsp;+&nbsp;chunk;<br />&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;response.on('end',<span style="color: #0000FF; ">function</span>(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(responseHTML);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;do&nbsp;something&nbsp;useful</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;});<br />});</div>&nbsp; &nbsp;<span style="font-family: Arial, sans-serif; background-color: #ffffff;">在上面的代码中，我们需要在end事件中处理responseHTML变量，由于Javascript的闭包特性，我们可以在两个回调函数之外定义responseHTML变量，然后在data事件对应的回调函数中不断修改其值，并最终在end事件中访问处理。<br /></span><br />&nbsp;&nbsp;&nbsp;3.Javascript在动态语言中性能较好，有开发人员对Javacript、Python、Ruby等动态语言做了性能分析，发现Javascript的性能要好于其他语言，再加上V8引擎也是同类的佼佼者，所以Node.js的性能也受益其中。<br /><br />&nbsp;&nbsp;&nbsp;JavaScript不仅在服务器端开始流行，在游戏客户端编程方面也成为了一个很重要的选择。就在不久前，目前非常流行的一个手游引擎cocos2d-x也推出了JavaScript版本。引用创始人王哲的一句话，如果说C++最靠谱的话，那么Lua应该算是最流行，而Javascript是最有前景。<img src ="http://www.cppblog.com/cxiaojia/aggbug/202240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cxiaojia/" target="_blank">C小加</a> 2013-07-30 12:19 <a href="http://www.cppblog.com/cxiaojia/archive/2013/07/30/202240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>