Pro JavaScript Techniques第一章: 现代javscript编程

 标题: Pro JavaScript Techniques第一章: 现代javscript编程

mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#1

发表于 2007-4-4 10:46  资料  短消息  加为好友 

Pro Javascript Techniques翻译连载:说明和目录

  JavaScript的演化是渐进而稳固的。历经过去十年的进程,JavaScript在人们的认知里已经从一门简单的玩物式的语言逐渐发展成为一门倍受推崇的编程语言,被全世界的公司和开发者用来构造种种精彩的应用。现代JavaScript编程语言一如既往地可靠、健壮,强大得令人难以置信。在本书中我进行的许多论述,将揭示是什么使得现代JavaScript应用程序与从前有着那么明显的不同。本章中出现的许多概念远不能算新奇,然而成千上万聪明的程序员的认同促使它们的用途得以升华并最终形成今天的格局。既如此,我们这就来着眼现代JavaScript程序设计。

[ 本帖最后由 mozart0 于 2007-6-21 13:29 编辑 ]


one by one

[广告] 【万网邮箱DIY,灵活购买】| 【西部数码】480元轻松自助建站
mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#2

发表于 2007-4-4 10:47  资料  短消息  加为好友 

  
  面向对象的JavaScript
  
  从语言的视角来看,面向对象的程序设计和面向对象的JavaScript语言绝对不是什么摩登的东西;JavaScript最开始就是被设计成一种彻底的面向对象语言。然而,随着JavaScript在其使用和接受的过程中的“逐步发展”,其它语言(如Ruby,Python,和Perl等)的程序员留意到了它并开始将他们的编程模式引入了JavaScript。

  面向对象的JavaScript代码的外观和内部运作都有别于其它具有对象能力的语言。在第二章我将深入论述使它如此独特的方方面面,而在这里,先来看一点基础的东西以体会编写现代JavaScript代码的初步感觉。程序1-1中的两个对象构造器的例子,演示了可用于学校课程的简单的对象搭配。

程序1-1. 课程和课程表的面向对象JavaScript表述

[Copy to clipboard] [ - ]

CODE:

//类Lecture的构造器
//使用两个字符串参数,name和teacher
function Lecture( name, teacher ) {
    //把它们作为对象的本地属性保存
    this.name = name;
    this.teacher = teacher;
}
//类Lecture的方法,生成一个显示该课程信息的字符串
Lecture.prototype.display = function(){
    return this.teacher + " is teaching " + this.name;
};
//类Schedule的构造器
//使用一个lectures类型的数组作为参数
function Schedule( lectures ) {
    this.lectures = lectures;
}
//类Schedule的方法,用来构造一个描述该课程表的字符串
Schedule.prototype.display = function(){
    var str = "";
    //遍历每门课程,累加构成信息字符串
    for ( var i = 0; i < this.lectures.length; i++ )
        str += this.lectures[i].display() + " ";
    return str;
};

  从程序1-1的代码中你或许已经看出,大部分的面向对象基本原则贯穿存在于其中,但它们是以不同于其它更常见的面向对象语言的方式组织起来的。你可以创建对象构造器和方法,并存取对象属性。程序1-2展示了在应用程序中使用上面两个类的一个示例。

程序1-2. 给用户提供课程的列表

[Copy to clipboard] [ - ]

CODE:

//创建一个新的课表对象,存于变量mySchedule中
var mySchedule = new Schedule([
    //创建一个课程对象的数组,
    //作为传给课表(原文此处为Lecture,疑为笔误)对象的唯一参数
    new Lecture( "Gym", "Mr. Smith" ),
    new Lecture( "Math", "Mrs. Jones" ),
    new Lecture( "English", "TBD" )
]);
// 弹出对话框显示课表的信息
alert( mySchedule.display() );

  伴随对广大程序员对JavaScript的接受,设计良好的面向对象代码的使用也正日益普及。贯穿本书的始末,我将试图展示我认为能够最好地例示代码设计与实现的不同的面向对象的JavaScript代码片段。

[ 本帖最后由 mozart0 于 2007-4-6 17:14 编辑 ]


one by one

[广告] 购买数字引擎双线路主机空间 | 优质域名主机首选时代互联
mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#3

发表于 2007-4-4 10:48  资料  短消息  加为好友 

  测试你的代码

  建立起良好的面向对象的基本代码之后,开发专业品质的JavaScript代码的第二个方面是确保拥有一个强劲的代码测试环境。当开发频繁使用的或将由其它开发者维护的代码时,严格调试的必要性会显得尤为突出。为其它开发者提供一个坚实的测试基础,是维持代码开发活动的关键。
  在第四章,你将会看到一些可用来形成良好的测试/使用框架的不同工具,以及对复杂应用程序的简单调试。用于Firefox的插件Firebug就是其中一例。Firebug提供了许多的有用的工具,如错误控制台,HTTP请求日志,调试,以及元素查看。图1-1展示了Firebug调试一段代码时的实况截屏。
[attach]32056[/attach]
  图1-1. Firefox Firebug插件运行时的截屏
  
  开发干净的、可测试的代码的重要性怎么强调都不会过分。一旦你开始开发一些干净的面向对象代码并将它们与合适的测试套件结合,相信你会倾向于同意这一点。

[ 本帖最后由 mozart0 于 2007-4-4 22:17 编辑 ]

 附件: 您所在的用户组无法下载或查看附件,您需要注册/登陆后才能查看!


one by one

[广告] 网站博客卖广告推荐:阿里妈妈
mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#4

发表于 2007-4-4 10:49  资料  短消息  加为好友 

  为分发而进行的封装
  
  开发现代的专业JavaScript代码的最后一个方面是为了代码分发或在现实世界里中使用而进行的封装处理。随着开始开发者们在其页面中使用越来越多的JavaScript代码,冲突的可能性将会增加。如果两个JavaScript库里都有一个名为data的变量或者按各的意图添加事件,灾难性的冲突和莫名其妙的错误可能就会出现。
  开发者简单地置入<script>指针无须任何变动就能正常工作的能力是开发一个成功的JavaScript库的精诣所在。开发者用以保持代码清洁和普遍兼容的的技术或解决方案有许多种。
  使用命名空间是广泛使用的保证代码不与其它JavaScript代码互相影响和抵触的一种技术。这方面一个极端的(但未必是最好或最有用的)运作中的例子就是Yahoo开发的任何人都可使用的用户界面库。使用该库的一个示例见程序1-3.

  程序1-3. 使用重度名称空间化的YahooUI库给一个元素添加事件

[Copy to clipboard] [ - ]

CODE:

//给ID为"body"的元素添加mouseover事件监听器
YAHOO.util.Event.addListener('body','mouseover',function(){
    //and change the background color of the element to red
    this.style.backgroundColor = 'red';
});

  然而,这种命名空间方法存在一个问题,即库与库之间在构造和使用的方式上缺乏内在的一致性。正是在这一点上,中心代码仓库如JSAN(JavaScript Archive Network)变得非常有用。JSAN提供一套代码库需遵从的一致规则,以及一种快捷导入代码所依赖的其它库的方式。图1-2展示了JSAN的主分发中心的一个截屏。
  [attach]32057[/attach]
  图1-2. 公共代码仓库JSAN的截屏

  我将在第三章阐述开发清洁的可封装代码的细节。此外,其它常见的事故多发点如事件处理冲突,将在第六章论述。

[ 本帖最后由 mozart0 于 2007-4-4 22:18 编辑 ]

 附件: 您所在的用户组无法下载或查看附件,您需要注册/登陆后才能查看!


one by one

mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#5

发表于 2007-4-4 10:50  资料  短消息  加为好友 

  Unobtrusive DOM脚本编程
  
  基于一个优良的可测试的核心创建你的代码和兼容的分发,是Unobtrusive DOM脚本编程的基本概念。编写unobtrusive代码意味着与你的HTML内容的彻底分离:数据来自服务器,而JavaScript代码用来使其动态化。达到这一彻底分离的最重要的副作用就是你的代码在不同的浏览器之间可以完美的升/降级。利用这一点,你可以提供高级的内容给支持它的浏览器,而在不支持的浏览器上从容隐藏之。
  编写现代的、Unobtrusive代码包括两个方面:文档对象模型(DOM)和JavaScript事件。本书中我对这两个方面都将作深入的解释。

  文档对象模型

  DOM是表示XML文档的流行的方法。它未必是最快的、最轻便的、或者最易使用的,却是是最普及的,绝大多数web开发语言(如Java,Perl,PHP,Ruby,Python,及Javascript)都实现了对它的支持。DOM旨在为开发者提供一种直观的方式来导航于XML的层次结构中。
  因为有效的HTML只是XML的一个子集,保有一个方式来有效地解析和浏览DOM文档对于简化JavaScript开发来说是必不可少的。从根本上讲,出现在JavaScript中的大多数的交互是发生在JavaScript与页面所包含的不同HTML元素之间的;DOM是使这此过程简单化的卓越工具。程序1-4展示了使用DOM在页内导航和查找不同的元素然后操作它们的一些例子。

  程序1-4. 使用文档对象模型定位并操纵不同的DOM元素

[Copy to clipboard] [ - ]

CODE:

<html>
<head>
<title>Introduction to the DOM</title>
<script>
//直到文档完全载入,我们才能操作DOM
window.onload = function() {
  //找到文档中所有的<li>元素
  var li = document.getElementsByTagName("li");
  //然后给它们全部加上边框
  for ( var j = 0; j< li.length; j++ ) {
    li[j].style.border = "1px solid #000";
  }
  //定位ID为'everywhere'的元素
  var every = document.getElementById( "everywhere" );
  //并将它从文档中移除
  every.parentNode.removeChild( every );
};
</script>
</head>
<body>
  <h1>Introduction to the DOM</h1>
  <p class="test">There are a number of reasons why the DOM is awesome,
    here are some:</p>
  <ul>
    <li id="everywhere">It can be found everywhere.</li>
    <li class="test">It's easy to use.</li>
    <li class="test">It can help you to find what you want,
      really quickly.</li>
  </ul>
</body>
</html>

  DOM是开发Unobtrusive JavaScript代码的第一步。借助简单快速导航HTML文档的能力,所有随之而来的JavaScript/HTML交互将变得如此简单。
  
  事件

  事件将一个应用程序之内所有的用户交互结合在一起。在一个设计良好的JavaScript应用程序里,你将拥有数据源和它的视觉的表示(在HTML DOM内部)。为了同步这两个方面,你必须监视用户的交互动作并试图相应地更新用户界面。使用DOM和JavaScript事件的结合是使得现代web应用程序赖以工作的基本组合。
  所有的现代浏览器都提供一系列的只要特定交互动作发生即被触发的事件,如用户移动鼠标,敲击键盘,或离开页面等等。使用这些事件,你可以注册代码到特定事件,一旦该事件发生,你的代码就会被执行。程序1-5展示了这种交互的一个实例,该网页中的<li>元素在用户鼠标经过的时候会改变背景色。
  
  程序1-5. 使用DOM和事件来提供一些视觉效果

[Copy to clipboard] [ - ]

CODE:

<html>
<head>
<title>Introduction to the DOM</title>
<script>
//直到文档完全载入,我们才能操作DOM
window.onload = function(){
    //查找所有的<li>元素,附以事件处理程序
    var li = document.getElementsByTagName("li");
    for ( var i = 0; i < li.length; i++ ) {
        //将鼠标移入事件处理程序附在<li>元素上,
        //该程序改变<li>背景颜色为蓝色
        li[i].onmouseover = function() {
            this.style.backgroundColor = 'blue';
        };
        //将鼠标移出事件处理程序附在<li>元素上,
        //该程序将<li>的背景颜色改回白色
        li[i].onmouseout = function() {
            this.style.backgroundColor = 'white';
        };
    }
};
</script>
</head>
<body>
  <h1>Introduction to the DOM</h1>
  <p class="test">There are a number of reasons why the DOM is awesome,
    here are some:</p>
  <ul>
    <li id="everywhere">It can be found everywhere.</li>
    <li class="test">It's easy to use.</li>
    <li class="test">It can help you to find what you want,
      really quickly.</li>
  </ul>
</body>
</html>

  JavaScript事件是复杂多样的。本书中的大多数代码或应用程序都以某种方式利用了事件。第六章和附属B完全专注于事件及其交互。

  JavaScript与CSS

  动态HTML建立在DOM和事件交互的基础上。在核心层面上,动态HTML表示发生在JavaScript和附着在DOM元素上的CSS信息的交互。
  层叠式样式表(CSS)作为布局的标准服务于简单的不唐突的网页,在最小化了用户端兼容性问题的同时,提供给开发者以强大的可控制性。从根本上讲,动态HTML就是探索JavaScript和CSS彼此交互作用时能够达到什么以及怎样最好地利用该联合达成令人印象深刻的效果。
  更高级的交互示例如拖放元素和动画效果见第七章。在那里我将围绕它们展开深入论述。


one by one

mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#6

发表于 2007-4-4 10:50  资料  短消息  加为好友 

  Ajax

  Ajax,或曰异步Javascript与XML,是由Adaptive Path公司的创办人之一兼董事长Jesse James Garrett在其论文"Ajax:Web应用程序的新途径"(http://www.adaptivepath.com/publ ... archives/000385.php)中创造的一个术语。它描述了请求和提交额外的信息时发生于客户和服务器之间的高级交互。
  术语Ajax包括了许多种数据据通讯的可能组合,但它们都围绕一个中心前提:附加的数据请求是在页面完全载入之后由客户端向服务器发起的。这允许应用程序开发者超越缓慢的、传统的应用程序流程,创建与用户相关的额外交互。图1-3是来自Garrett的Ajax论文的一个图示,说明了应用程序中由于额外的请求发生在后台(而且用户很可能并不知情),交互的流程发生了怎样的改变。
[attach]32125[/attach] 
  图1-3:来自文章"Ajax:Web应用程序的新途径"的图示,展示发生于客户和服务器之间的先进的异步的交互

  Garrett论文的最初发表,激起了用户、开发者、设计者以及管理者们的兴趣,使用高级交互的新型应用程序爆炸式地增长。讽刺的是,在这一兴趣复苏的同时,Ajax背后的技术却是相当陈旧的(在2000年左右就有已有了商业上的应用)。然而最主要的不同在于,老的应用程序利用了浏览器特有的方式与服务器通讯(如仅ie具有的功能)。由于所有的现代浏览器都支持XMLHttpRequest(发送或从服务器接收数据的主要手段),the playing field has been leveled(见#12 cfs178的回复),每个人都可以享受其益处。
  如果说有一个公司走在了利用Ajax技术创建优秀应用程序的最前列,那无疑是Google。恰在最初的Ajax论文出现之前,它发布了一个高交互性的domo:Google Suggest。该demo可以实时地自动完成你所键入的查询,这是旧式的页面重载不可能达到的功能。图1-4是Google Suggest运行时的一个截屏。
[attach]32126[/attach]
  图1-4. Google Suggest,早于Garrett的Ajax论文的利用了异步XML技术的应用程序

  除此而外,Google的另一个革命性的应用程序为Google Map,用户在其地图上移动将会实时地看到相关的局部结果。这一程序通过使用Ajax技术而提供的速度和可用性的水平是其它任何可用的地图程序所无法比拟的,结果彻底地变革了在线地图市场。图1-5是Google Map的截屏.
[attach]32127[/attach]
  图1-5. Google Maps,利用了一些Ajax技术来动态载入特定区域信息

[ 本帖最后由 mozart0 于 2007-4-8 12:22 编辑 ]

 附件: 您所在的用户组无法下载或查看附件,您需要注册/登陆后才能查看!


one by one

mozart0 [楼主]

匪徒田老大

版主

帖子 2326
体力 6628
威望 177
注册 2003-6-18

#7

发表于 2007-4-4 10:50  资料  短消息  加为好友 

  
  浏览器支持

  JavaScript开发所面临的不幸事实是,因为与实现和支持它的浏览器关联过于紧密,它受到当前最流行浏览器的支配。由于用户未必会使用对JavaScript支持得最好的浏览器,我们被迫对哪些是最重要的功能作出抉择。
  许多开发者已经开始做的是去掉对那些导致过多开发障碍的浏览器的支持。因为它们用户群的规模和还是因为它们拥有你喜欢的功能而考虑对浏览器的支持,需要仔细的权衡。
  最近Yahoo发布了一个可用来扩展你的web应用程序的JavaScript库。连同那个库,它还发布了一些供web开发者遵从的指导方针。以我之见,从中产生的最重要的文档是Yahoo支持与不支持的各种浏览器的官方的列表。尽管任何人或任何公司都可以做类似的事情,一份由互联上访问最频繁的网站所提供的文档,其价值绝对无法估量。
  Yahoo开发了一个分级的浏览器支持策略,对浏览器指定特定的级别并依据其功能为它提供不同的内容。Yahoo给浏览器三个级别:A,X和C:
  A级浏览器是得到完全支持和测试的,Yahoo的所有程序都能有保障在其中运行。
  X级浏览器是Yahoo认可但是没能彻底测试的准A级浏览器,或者是崭新的从未遇到过的浏览器。X级浏览器被期望能处理高级的内容,与A级浏览器等同对待。
  C级浏览器是已知的“劣质的”浏览器,不支持运行Yahoo应用程序所必须的功能。由于Yahoo应用程序完全Unobtrusive(即使没有JavaScript它们也能继续工作),这些浏览器只需处理不含JavaScript的功能性的内容。
  顺便一提,Yahoo的浏览器级别选择竟与我的不谋而合,这使得它尤其富有吸引力。在这本书里,我大量地使用了术语“现代浏览器”,当我用这一措词的时候,我指的Yahoo浏览器分级表评定为A级的任浏览器。给定一组赖以工作的一致的功能,减少因避免浏览器的不兼容而带来的痛苦,学习和开发的经历将会变得更加有趣。
  我极力推荐你们去通读浏览器分级的支持文档(见http://developer.yahoo.com/yui/articles/gbs/gbs.html,该文档包含了图1-6所示的浏览器支持表),感受一下Yahoo力图实现的是什么。通过将些信息公之于web开发的大众,Yahoo正在给出一条无价的“黄金标准”让其它所有人去靠拢,这是很了不起的。
[attach]32139[/attach]
  图1-6. Yahoo提供的浏览器分组支持表

  更多的关于浏览器支持情况的信息请参看本书的附录C,那里对每种浏览器的缺点和长处都有深入的论讨。或多或少地,你会发现所有的A级浏览器都走在发展的最前列,提供了远远超出你的开发所需要的功能。
  当选择你希望支持哪些浏览器时,最终结果实际上可以归结为你的应用程序支持的一组功能。如果你想要支持NS4或IE5(举个例子来说),则势必严格地限制你可以在程序中使用的功能的数量,因为它们缺乏对现代编程技术的支持。
  尽管如此,了解哪些浏览器是现代的允许你利用其中可用的强大的功能并给你一个可供将来的开发所依据的稳固的基础。这一稳固的开发基础可由以下几种功能所定义:
  核心Javascript 1.5: 最近、最广泛接受的JavaScript版本。它全面支持面向对象的JavaScript。IE5.0不支持全部的1.5,这是开发者们不愿意支持它的主要原因。
  XML文档对象模型(DOM)2:用来访问HTML和XML文档的的标准方案。这绝对是编写高效率的程序不可或缺的。
  XMLHttpRequest: Ajax技术的支柱——用来发起HTTP请求的一个简单层。所有的浏览器默认都支持这一对象,除了IE5.0-6.0;而它们也都支持用ActiveX初始化功能相当的对象。
  CSS: 网页设计的基本需求。这似乎像是一个额外的需求,但是拥有CSS对web应用程序开发者来说是必不可少的。由于每一种现代浏览器都支持CSS,大多数问题的发生通常归结为呈现方面的差异。这正是IE for Mac较少被频繁支持的主要原因。
  以上这些浏览器功能的结合构成了开发JavaScript web应用程序的支柱。所有的现代浏览器都以某种方式支持以上列举的功能。本书论述的所有内容都基于这一假设:你所使用的浏览器最起码能支持它们。

时间: 2024-08-03 08:00:23

Pro JavaScript Techniques第一章: 现代javscript编程的相关文章

Pro JavaScript Techniques第二章:面向对象的Javascript

对象是JavaScript的基本单位.实际上JavaScript中一切都是对象并得益于这一事实.然而,为了增强这一纯粹的面向对象的语言,JavaScript包括了一个庞大的功能集,使它无论是在潜在能力还是风格上,都成为一门极其独特的语言. 本章中我将开始覆盖JavaScript语言的最重要的一些方面,如引用,作用域,闭包,以及上下文,你会发现这正是其它JavaScript书籍中很少论及的.打下主要的基础以后,我们将开始探索面向对象JavaScript的几个重点,包括对象到底如何运作和怎样创建新的

Pro JavaScript Techniques第三章: 创建可重用的代码

 Pro JavaScript Techniques第三章: 创建可重用的代码 mozart0 [楼主] 匪徒田老大 版主 帖子 2326体力 6628 威望 177 注册 2003-6-18 #1 发表于 2007-4-8 12:46  资料  短消息  加为好友  Pro Javascript Techniques翻译连载:说明和目录 当与其它程序员共同开发代码时(这里对大多数合作或团队项目来说是很常见的),为了保持你们的清醒而维护良好的编程惯例将会变得极其重要.随着近年来JavaScrip

Pro Javascript Techniques第五章: 文档对象模型

在过去十年里web开发所取得的所有进步当中,DOM(文档对象模型)脚本是开发者可用来改进其用户体验质量的最重要的技术. 使用DOM脚本向页面加入非侵入的JavaScript(意味着它不会与不支持的浏览器或禁用了JavaScript的用户发生冲突),你将能提供各种你的用户可享受的现代浏览器的增强功能,同时又不会损害那些不能利用它们的用户.这么做的一个副作用是,你的所有代码最终都可以被很好的分离和更容易地管理. 可喜的是,所有的现代浏览器都支持DOM并额外地支持一个当前HTML文档的内建的DOM表述

Pro JavaScript Techniques第七章: JavaScript与CSS

  JavaScript和CSS的交互是现代JavaScript程序设计的支柱.事实上对于所有的现代web应用程序来说,至少使用某些形式的动态交互是必须的.那么做过之后,用户可以更快地操作而更少地把时间浪费在等待页面加载上.将动态技术与第六章提出的事件方面的观念相结合,对于实现无缝而强大的用户体验是非常重要的. 层叠式样式表是用来对易用的.有吸引力的网页进行修饰和布局的事实标准,它在给用户提供最少的困难的同时为开发者提供最多的能力.当你将那一能力与JavaScript相结合时,你将能够构造强健的

Pro JavaScript Techniques学习笔记_javascript技巧

全局变量是Window对象属性的一部分,例子: 复制代码 代码如下: var test = 'test'; alert(window.test); 浏览器渲染和操作HTML的大致顺序: HTML解析完毕 外部脚本和样式表加载完毕 脚本在文档内解析并执行 HTML DOM完全构造起来 图片和外部内容加载 网页完成加载 所有的主流浏览器都实现了innerHTML属性,但是因为没有统一标准,所以或多或少会有一些怪异的bug. 基于Mozilla的浏览器在innerHTML声明中并不回会返回<style

javascript基础第一章 JavaScript与用户端_基础知识

一 页面输出 1.头部文件 复制代码 代码如下: <head> <script language="javascript"> document.write("www.jb51.net"); </script> </head> 2.页面内 复制代码 代码如下: <body> <script> document.write(""); </script> </bo

《.net编程先锋C#》第一章 C#简介(转)

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

《.net编程先锋C#》第一章 C#简介

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

《指针的编程艺术(第二版)》一第一章 内存的基本概念1.1 变量

第一章 内存的基本概念 指针的编程艺术(第二版)1-1 变量 1-2 一维数组 1-3 二维数组 1-4 结构 1-5 练习 当程序定义一个变量时,编译程序根据其数据类型分配适当大小的内存给它,以便存储数据.这就如同地址一般,邮差根据收件人的地址,将信件投入正确的信箱. 1.1 变量 指针的编程艺术(第二版)程序以变量名称代表某一事项,就好比每一个人都有姓名一般.如果有人喊"蔡明志",那我一定会说"到",因为这个名字就代表我的意思.我们就从变量开始谈起.请参阅范例a