今天介绍VS2010和VWD2010 Express对JavaScript智能感知方面的一些改进。你会发现 VS2010 的 JavaScript 智能感知加载大的脚本文件和使用大的库更加迅速了,它现在为更加高级的场景提供了语句完成支持。

改进JavaScript智能感知

为动态语句(如JavaScript)提供智能感知比为静态语言(像VB或C#)更加复杂。正确地推断变量、方法等的模型(shape)和结构在没有伪执行(pseudo-code executing)真实代码本身的时候是不可能实现的,虽然作为一种语言 JavaScript 非常灵活可以在运行时动态修改和改变。

VS2010的JavaScript代码编辑器现在可以智能地执行这种伪代码执行,这样智能感知完成能够做到精确和完整。下面是一个简单的演练。

场景 1:基本的类型推断

当你在JavaScript中声明变量的时候,你不必声明它的类型。相反,变量的类型是基于赋予它的值。因为VS2010在编辑器内伪执行了代码,它可以动态地推断变量的类型,并基于指派给变量的值提供适当的代码智能感知。

例如,注意下面VS2010是如何为一个字符串提供语句完成的(因为把字符串赋予了"foo"变量):

如果我们之后把一个数字值赋给"foo",语句完成在赋值之后会自动改变为数字提供智能感知:

场景 2:操纵多个浏览器对象时的智能感知

用JavaScript操纵页面的DOM,以及在客户端对浏览器对象进行操作都是很常见的。

旧版本的VS提供了在标准浏览器对象上的JavaScript语句完成,但对更加高级的场景(如动态创建变量和方法)没有提供多少帮助。VS2010的代码伪执行为更广泛的一些场景提供了丰富的智能感知。

例如,下面我们使用浏览器的 window 对象创建一个名为 "var" 的全局变量。注意我们如何得到智能感知的:

当我们把 "bar" 变量作为数字赋值的时候,VS2010的智能感知引擎会正确地推断出它的类型并修改语句完成以适应数字类型:

场景 3:Showing Off

因为VS2010会在编辑器内伪执行代码,所以它能够处理许多场景(实用而又古怪的),并且仍然能够提供精确的类型推断和智能感知。

例如,下面我们使用一个for循环为浏览器的 window 对象动态地创建并命名多个动态变量(bar1, bar2, bar3...bar9)。注意编辑器的智能感知引擎是如何识别它们并为之提供语句完成的:

因为是通过浏览器的 window 对象添加的,同时又是全局变量,所以会显示一个全局变量下拉列表框:

类型推断依然是完全支持的。

仅仅是为了好玩(以及炫耀),我们可以调整for循环对偶数编号的变量赋予字符串,为奇数编号的变量赋予数字:

注意上面我们是如何为字符串变量 "bar2" 获得语句完成的。

注意下面对于 "bar1" 我们是如何获得对数字的语句完成的:

总结

Visual Studio 2010(以及免费的 Visual Web Developer 2010 Express)现在提供了更加丰富的 JavaScript 智能感知支持。这样就可以和许多非常流行的 JavaScript 库一起工作了。这样在编写客户端 JavaScript 代码和在ASP.NET 应用程序中启用 AJAX 场景时可以提供更好的开发体验。

转载于:https://blog.51cto.com/qczhang/1026453

VS2010与.NET4系列 20.VS2010的JavaScript智能感知增强相关推荐

  1. VS2010与.NET4系列 23.Visual Studio 2010 扩展管理器(和新的 VS2010 PowerComman

    今天介绍VS2010中的扩展能力改进,以及一个微软发布的"PowerCommands for Visual Studio 2010"扩展. VS2010中的扩展能力 VS2010比 ...

  2. VS2010与.NET4系列 5.代码优化的Web开发轮廓

    今天讨论VS2010带来的"代码优化的Web开发"轮廓(Web Development (Code Optimized) profile)特性,就可以对VS进行配置,隐藏所见即所得 ...

  3. VS2010与.NET4系列 16.ASP.NET 4 Web Forms 更加干净的HTML标记

    从今天开始会有几篇日志,介绍 ASP.NET 4 Web Forms 中的一些重要变化,即生成干净的.标准兼容的.CSS友好的标记.今天介绍对服务器控件向客户呈现"ID"属性的更好 ...

  4. VS2005、VS2010等VS系列IDE在MFC开发过程中,Resource View标签打不开,问题为“opened in other editor”

    问题描述: VS2005.VS2010等VS系列IDE在MFC开发过程中,Resource View标签打不开,问题为"opened in other editor" 可能原因: ...

  5. 解决VS2010 beta2 安装后html标签和script智能提示不起作用的问题

    此文已经移至:解决VS2010 beta2 安装后html标签和script智能提示不起作用的问题 安装VS2010 beta2 后,发现正常的html标签的智能提示不起作用,比如<a>, ...

  6. SAP PM入门系列20 - IH08 Equipment报表

    SAP PM入门系列20 - IH08 Equipment报表 SAP PM模块中有比较多的报表.对于各个主数据,各个主要的单据对象,都有标准的报表可供使用. 对于设备这个技术对象,事务代码IH08是 ...

  7. 【OpenCV学习笔记2】OpenCV 完全安装 新增VS2010+OpenCV2.1,新增VS2010+OpenCV2.3.1

    OpenCV 完全安装 SkySeraph  Jun.1st 2010  HQU zgzhaobo@gmail.com  452728574 Latest Modified Date:Dec.12nd ...

  8. 20个将 JavaScript 用到极致的网站

    浏览器正变得越来越强大,上面有各种丰富的功能可以供开发者选择,一些在几年前几乎难以想象的功能都已经一一实现.有了这些新功能,开发者现在能够开发出 更精细.更复杂.更有想象力的用户界面了.这为网站开发扫 ...

  9. 小酌重构系列[20]——用条件判断代替异常

    小酌重构系列[20]--用条件判断代替异常 参考文章: (1)小酌重构系列[20]--用条件判断代替异常 (2)https://www.cnblogs.com/keepfool/p/5513946.h ...

最新文章

  1. 移动端导航页面html,swiper4实现移动端导航切换
  2. 基于词典的逆向最大匹配中文分词算法,更好实现中英文数字混合分词
  3. 力扣:7整数反转(python)
  4. IE浏览器开发人员工具怎么使用
  5. Perl 字符串截取函数substr
  6. 2021-05-15 SqlServer面试题 通用篇
  7. 树莓派pytorch实现图像识别
  8. 手机号中间四位变成****
  9. NAT技术与代理服务器调研
  10. (附源码)ssm通用数据展示系统 毕业设计200934
  11. 家中闲置旧电脑改装家用NAS(入门教程)
  12. Java 中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO 的概念
  13. 图片转world文档 Excel excel 新
  14. 从零开始学STM32(学习笔记——第三天)
  15. for循环,for...in循环,forEach循环的区别
  16. Android EditText身份证等类型
  17. 格鲁夫12年前惊人的预言,解释了今天美国对中国芯片所做的一切
  18. win10希望计算机做什么取消,主编设置win10设置和取消定时关机的解决形式
  19. jn5168烧写方法
  20. CentOS7安装MySQL8.0和Nginx

热门文章

  1. 如何解决 SQL Server 2000 中的连接问题
  2. Java学习_day001
  3. docker image存储路径_使用fluentd作为docker日志驱动收集日志
  4. Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果
  5. 视图属性+对象动画组件ViewPropertyObjectAnimator
  6. python批量分析表格_Python环境下百度Ocr表格批量识别
  7. vue拖拽控件生成界面代码_Blue HMI人机界面开发平台
  8. c语言编译时字符黑色,C语言黑与白问题
  9. 研究者设计了Fastball任务早期诊断阿尔茨海默病
  10. 利用脑机接口从鸟的脑电波中重现鸟唱歌声