JavaScript是一门动态的,弱类型,基于原型的脚本语言。在JavaScript中“一切皆对象”,在这一方面,它比其他的OO语言来的更为彻底,即使作为代码本身载体的function,也是对象,数据与代码的界限在JavaScript中已经相当模糊。虽然它被广泛的应用在WEB客户端,但是其应用范围远远未局限于此。下面就这几个特点分别介绍:
动态性
动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:
//定义一个对象
var obj = new Object();
//动态创建属性name
obj.name = "an object";
//动态创建属性sayHi
obj.sayHi = function(){
return "Hi";
}
obj.sayHi();
假如我们使用Java语言,代码可能会是这样:
class Obj{
String name;
Function sayHi;
public Obj(Sting name, Function sayHi){
this.name = name;
this.sayHi = sayHi;
}
}
Obj obj = new Obj("an object", new Function());
弱类型
与Java,C/C++不同,Javascript是弱类型的,它的数据类型无需在声明时指定,解释器会根据上下文对变量进行实例化,比如:
//定义一个变量s,并赋值为字符串
var s = "text";
print(s);
//赋值s为整型
s = 12+5;
print(s);
//赋值s为浮点型
s = 6.3;
print(s);
//赋值s为一个对象
s = new Object();
s.name = "object";
print(s.name);
结果为:
text
17
6.3
Object
可见,Javascript的变量更像是一个容器,类似与Java语言中的顶层对象Object,它可以是任何类型,解释器会根据上下文自动对其造型。
弱类型的好处在于,一个变量可以很大程度的进行复用,比如String类型的name字段,在被使用后,可以赋值为另一个Number型的对象,而无需重新创建一个新的变量。不过,弱类型也有其不利的一面,比如在开发面向对象的Javascript的时候,没有类型的判断将会是比较麻烦的问题,不过我们可以通过别的途径来解决此问题。
解释与编译
通常来说,Javascript是一门解释型的语言,特别是在浏览器中的Javascript,所有的主流浏览器都将Javascript作为一个解释型的脚本来进行解析,然而,这并非定则,在Java版的Javascript解释器rhino中,脚本是可以被编译为Java字节码的。
解释型的语言有一定的好处,即可以随时修改代码,无需编译,刷新页面即可重新解释,可以实时看到程序的结果,但是由于每一次都需要解释,程序的开销较大;而编译型的语言则仅需要编译一次,每次都运行编译过的代码即可,但是又丧失了动态性。
原文见
http://abruzzi.iteye.com/
分享到:
相关推荐
1.7.2版本发布于2009年,虽然相对较旧,但仍然包含了许多关键的JavaScript语言特性,如函数、对象、数组、正则表达式等,以及一些高级特性如闭包和原型链。 使用"org.mozilla.javascript-1.7.2.jar",开发者可以...
JavaScript,作为互联网上最广泛使用的脚本语言,其在Web开发中的地位不可动摇。而Mozilla的JavaScript实现,以其强大的功能和良好的性能,为开发者提供了丰富的编程体验。本文将围绕“org.mozilla.javascript-1.7.2...
Laravel的路由系统是其核心功能之一,它允许开发者定义URL到控制器方法的映射,同时支持参数、中间件和其他高级特性。通常,路由信息是在`routes/web.php`或`routes/api.php`文件中定义的。laravel-javascript-lang...
《JavaScript语言精粹》是一部深入剖析JavaScript语言特性的专业书籍,它不仅适合初学者快速入门,也适合有一定基础的开发者进阶提升。通过阅读本书,你将获得对JavaScript语言更深层次的理解,掌握其实现复杂功能的...
JavaScript在Photoshop中的应用是通过ECMAScript实现的,这是一种基于标准的、广泛使用的脚本语言,它为Photoshop提供了强大的编程接口(API),使得开发者可以深入操控图像处理、图层管理、颜色调整等多个方面。...
除此之外,还将深入探讨作用域、闭包、原型链等高级特性,这些都是理解和编写高效JavaScript代码的关键。 在"javascript-tutorial-master"目录下,你可能找到以下内容: 1. 教程文档:这些文档通常以Markdown格式...
作为第四版,它反映了JavaScript语言的最新发展,并涵盖了从基本语法到高级特性的全方位知识。 在JavaScript的世界里,理解基础至关重要。该书首先会引导读者熟悉JavaScript的基础语法,包括变量、数据类型(如字符...
JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用程序的关键工具。"JavaScript - O Guia Definitivo" 是一本专门针对葡萄牙语读者的权威指南,旨在全面深入地讲解JavaScript的核心概念和...
总的来说,"javascript-in-one-pic"是一个全面且直观的JavaScript学习资源,它以图形化的方式将复杂的语言概念和机制浓缩在一起,对于初学者和有经验的开发者来说都是一个宝贵的参考资料。通过深入理解和实践这些...
JavaScript是一种广泛应用于Web开发的编程语言,以其动态、弱类型和基于原型的特性而闻名。在文本编辑器和IDE中,语法高亮是一项基础且重要的功能,它可以帮助开发者更好地理解和编辑代码,通过颜色和样式区分不同的...
从第一版到第六版,每个版本都包含了对之前版本的改进和更新,这不仅体现了作者对内容的不断完善,也反映了JavaScript语言的进步和应用领域的拓展。 书中的知识点按照逻辑顺序编排,从基础的词汇结构到更高级的主题...
本课程以"complete-javascript-course-master.zip"为名,旨在提供一个详尽的JavaScript学习路径,帮助初学者乃至有一定经验的开发者深入理解并掌握这门广泛应用于Web开发的关键语言。JavaScript,作为一种轻量级的...
JavaScript的核心特性包括: 1. **解释型语言**:JavaScript代码在运行时由JavaScript引擎解释执行,而不是在编译阶段。这使得JS具有较高的灵活性和快速迭代能力。 2. **弱类型**:JavaScript采用动态类型系统,变量...
Java 和 JavaScript 在...通过深入研究这个源码压缩包,开发者不仅可以增强对 Java 和 JavaScript 互操作性的理解,还能掌握 GraalVM 的高级特性和性能优化技巧,这对于开发跨语言项目或提升现有项目性能都非常有价值。
《李炎恢JavaScript-pdf文档笔记》是一份详细记录了JavaScript编程语言基础知识至高级应用的教程,涵盖了从第一章到第三十四章的丰富内容。这个压缩包包含了一份PDF文档,旨在帮助学习者深入理解并掌握JavaScript的...
《angluo-javascript-341240.pdf.zip》是一个包含JavaScript编程知识的压缩文件,虽然没有具体的标签信息,但我们可以从“javascript”这一关键词推断出它可能涉及JavaScript语言的基础、进阶概念、实战技巧或者某个...
标题 "使用JavaScript进行React式编程" 指的是学习如何运用JavaScript这门广泛使用的编程语言来构建基于React的用户界面。React是由Facebook开发的一个用于构建用户界面的JavaScript库,尤其适用于构建可重用且组件...
《JavaScript语言精粹》是JavaScript开发者必读的经典之作,它深入浅出地讲解了JavaScript语言的核心概念和实用技巧。这本书不仅适合初学者作为入门指南,也适合经验丰富的开发者用来巩固和提升自己的技能。 首先,...
JavaScript,又被称为JS,是一种广泛应用于网页和网络应用开发的脚本语言,它基于ECMAScript规范,由Netscape公司的Brendan Eich在1995年发明。JavaScript通常与HTML和CSS一起使用,构成网页开发的三剑客,负责网页...
- **ECMA技术委员会TC39**(未完整列出的部分):讲述了ECMA技术委员会TC39的工作机制以及它们如何负责JavaScript语言标准的维护和发展。 ### 总结 《JavaScript for Impatient Programmers》是一本旨在帮助读者...