`
flyingis
  • 浏览: 294533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
刚刚开始JavaScript和Ajax学习,这是学习过程中的笔记,请各位DX指教:)

    JavaScript 的核心之一 ECMAScript 的语言特性和 Java 、 C 、 Perl 都有许多相似之处,其中不少特性都是从这些语言借鉴而来,同时它们之间也存在许多差异。下面列举一些 ECMAScript 的基本特性。

--和 Java 一样, ECMAScript 区分大小写,注释的格式相同,通过 {} 确定代码块,原始数据类型存储在堆栈,对象的引用存储在堆中;

--ECMAScript 是一种松散的语言, ECMAScript 通过 var 操作符声明变量,并且不限类型,例如 var n = 25 ,那么 n 就是数字类型, var n = “string” ,那么 n 就是 String 类型;

--在每一行代码后,可以不写分号, ECMAScript 自动认为该行的末尾为该行代码的最后; ECMAScript 中的变量可以不用初始化,在幕后系统将自动完成初始化操作;

--同一变量可以赋予不同类型的数据;变量的第一个字符只能是字母、下划线或 $ ,其他的字符可以是下划线、 $ 、或任意的字母、数字、字符;

--和其他语言一样,变量最好遵循驼峰书写法,或 Pascal 表示法、或匈牙利表示法;

--和大多数语言不同的是, ECMAScript 变量在使用之前可以不必声明,系统会自动将该变量声明为全局变量,例如 var m = “Good”; n = m + “Morning”; alert(n) 输出结构是“ Good Morning ”;

--在大多数语言里, String 是对象,在 ECMAScript 中却是原始数据类型。

原文地址:http://www.blogjava.net/flyingis/archive/2006/06/13/52484.html
分享到:
评论
12 楼 flyingis 2006-06-16  
Functions是ECMAScript的核心,在任何时候任何地方都可以运行的一组代码语句。

function functionName(arg0, arg1, ……, argN); {
  statements
}

当function没有返回值或return语句后没有值的时候,该function实际上会被系统定义为undefined,当function返回值的时候,function可以不必明确指定为某种数据类型。

[u]关于重载[/u]

重载是面向对象语言的基本特性之一,但ECMAScript的functions并不能重载,在同一范围里可以定义两个完全相同的函数,在调用函数的时候,最后的一个函数发挥作用。这种特性比较麻烦,但可以通过arguments对象来实现和重载类似的功能。

function func(); {
  if(arguments.length == 1); {
    alert(arguments[0] + 5);;
} else if (arguments.length == 2); {
  alert(arguments[0] + arguments[1]);;
}
}
func(5);;  //输出10
func(10, 15);;  //输出25


前面提到过,在同一范围里可以定义两个完全相同的function,在调用function的时候,最后的一个function发挥作用。

function func(i); {
  alert(i + 10);;
}
function func(i); {
  alert(i + 20);;
}
func(5);;  //输出25


可以看出,是调用了最后的一个function使得数据结果为25,如果使用Function类来定义以上两个函数,那为什么会使用最后的一个function可能会更明确一些。

var func = new Function(“i”, “alert(i + 10);”);;
var func = new Function(“i”, “alert(i + 20);”);;
func(5);;


func指向了另外一个引用,从而值发生了改变,func是作为function对象的引用而存在的,并且允许两个变量指向同一个function。

和Function类相关的属性、方法有许多,例如length、toString()、valueOf()等等。其中toString()在调试程序中使用较多。
11 楼 flyingis 2006-06-15  
box 写道
推荐一下这本书吧
Wrox - Professional Javascript For Web Developers - 2005.pdf


感谢!这本书评价不错,我在看的也是这本,值得初学研读。

http://www.blogjava.net/flyingis/archive/2006/06/11/51947.html
10 楼 box 2006-06-15  
推荐一下这本书吧
Wrox - Professional Javascript For Web Developers - 2005.pdf
http://www.amazon.com/gp/product/0764579088/qid=1150342789/sr=1-1/ref=sr_1_1/102-5630863-0806518?s=books&v=glance&n=283155
9 楼 flyingis 2006-06-14  
ECMAScript实际上并没有传统意义上的类,只是通过定义对象来等同于其他语言中的类,这一点我还比较含糊,以后可能会明白,在文中还是以“类”来说明。

var ob = new Object();

以上定义了一个Object对象的实例,这种语法和Java比较类似。当有参数的时候需要括号来引用,当不存在参数时,括号可以去掉。由于ECMAScript语言比较松散,不管是前面所属的基础语法,还是后面将提到的语法知识,我们都应该尽量按照一定的书写规范来约定自己的代码格式,而不应充分发挥语言松散的特点。

Object类

Object类和Java里的java.lang.Object类比较相似,它是ECMAScript中其他所有类的基类,它具有如下属性:
constructor—建立对象的函数的一个引用,对于Object类而言,该引用指向本地Object()方法。
prototype—对象里prototype对象的一个引用值。
Object类拥有的方法:
hasOwnProperty(property)—判断property属性是否存在于对象中,property数据类型为string;
isPrototypeOf(object)—判断一个对象是否是另一对象的prototype;
propertyIsEnumerable(property)—判断所给出的属性能否使用for语句列举出来;
toString()—返回对象的原始类型string;
valueOf()—返回对象合适的原始值,对于多数类而言,返回的值和toString()相同。
Object类的每一个属性和方法都被其他的类所重写。

Boolean类

定义方法var ob = new Boolean(true); ob是Boolean原始数据类型的一个引用。在使用Boolean对象过程中,需要注意,所有的对象会自动转变为true,因此
var ob1 = new Boolean(false);  var ob2 = ob1 && true;
最后ob2的值是true,非false。一般情况下,使用Boolean原始数据类型可以避免这种情况。

Number类

定义方法var o = new Number(15);
获得原始数据的值var n = o.valueOf();
Number类有一些为数字类型的值特别设计的方法:
alert(o.toFixed(2));  //输出15.00
alert(o.toExponential(1));  //输出1.5e+1
在无法确定使用toFixed还是toExponential的时候,可以使用toPrecision方法来获得取值:
alert(o.toPrecision(1));  //输出2e+1
alert(o.toPrecision(2));  //输出15
alert(o.toPrecision(3));  //输出15.0

String类

String类是一种复杂引用类型,这里仅列出一些常见的方法,其中不少都是模仿java.lang.String:

var s = new String(“Good Morning”);
alert(s.valueOf() == s.toString());  //输出true
alert(s.length);  //输出12
alert(s.charAt(1));  //输出o
var sr = s.concat(“ !”); alert(sr);  //输出Good morning !
alert(s.indexOf(“o”);  //输出1
alert(s.lastIndexOf(“o”);  //输出6
alert(s.localeCompare(Good morning));  //输出0
alert(s.localeCompare(Apple));  //输出1
alert(s.localeCompare(House));  //输出-1
alert(s.slice(2));  //输出od morning
alert(s.substring(2));  //输出od morning
alert(s.slice(2,-5));  //输出od mo
alert(s.substring(2,-5));  //输出Go
alert(s.toUpperCase());  //输出GOOD MORNING
alert(s.toLowerCase());  //输出good morning

另外,所有String类的方法同样可以用于String原始数据类型,因为它是伪对象。

待续~~~
8 楼 flyingis 2006-06-14  
To box:
写的是比较基础,希望以后能多交流。
7 楼 box 2006-06-14  
flyingis 写道
box 写道
这种哪里都能看到的垃圾就麻烦不要贴上来了


有时候一些BUG就是因为这些“垃圾”没有处理好而存在。

最开始就声明了这是个人的学习笔记,高手有兴趣就随意看看,不对之处就给予赐教,人总要从最基础的学起。在这里帖基础的东西不妥,但这是个过程,文中也注明了待续,成为一个精简的基础系列我想也可以吧,如果实在不允许,管理员可以根据版规直接删除,我没意见,就算你是高手,但请不要在这里用“垃圾”来乱评别人的帖,注意置顶删帖规则中的“在论坛污言秽语,攻击他人的删除用户ID,并且封锁IP地址 ”。

抱歉,我过分了。
6 楼 庄表伟 2006-06-14  
box 写道
这种哪里都能看到的垃圾就麻烦不要贴上来了


box,这样属于典型的攻击,请以后注意收敛。
5 楼 flyingis 2006-06-14  
box 写道
这种哪里都能看到的垃圾就麻烦不要贴上来了


有时候一些BUG就是因为这些“垃圾”没有处理好而存在。

最开始就声明了这是个人的学习笔记,高手有兴趣就随意看看,不对之处就给予赐教,人总要从最基础的学起。在这里帖基础的东西不妥,但这是个过程,文中也注明了待续,成为一个精简的基础系列我想也可以吧,如果实在不允许,管理员可以根据版规直接删除,我没意见,就算你是高手,但请不要在这里用“垃圾”来乱评别人的帖,注意置顶删帖规则中的“在论坛污言秽语,攻击他人的删除用户ID,并且封锁IP地址 ”。
4 楼 box 2006-06-14  
这种哪里都能看到的垃圾就麻烦不要贴上来了
3 楼 flyingis 2006-06-13  
ECMAScript 数据类型的转换通常可以通过三个方法来实现: Boolean(value) 、 Number(value) 和 String(value) ,这样通常会产生一些非预期的结果。

Boolean

var b1 = Boolean(“”); //false – empty string
var b2 = Boolean(“hi”); //true – non-empty string
var b3 = Boolean(100); //true – non-zero number
var b4 = Boolean(null); //false - null
var b5 = Boolean(0); //false - zero
var b6 = Boolean(new Object()); //true – object

Number

Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number(“5.5”) 5.5
Number(“56”) 56
Number(“5.6.7”) NaN
Number(new Object()) NaN
Number(100) 100

String

String() 能实现所有类型数据的直接转换,和使用 toString() 不同的是, String() 能够将 null 或 undefined 数据转换为 string 。

待续~~~
2 楼 flyingis 2006-06-13  
在不同数据类型之间转换是任何一门编程语言的一个重要特性, ECMAScript 提供了一系列简单的方法来实现数据的转换,大多数数据类型都提供了简单的转换方法,对于复杂的转换则有一些全局方法来完成,不管是哪一种方法, ECMAScript 中数据转换都非常简单。

Boolean 、 number 和 string 数据类型是原始数据类型,但它们同时是伪对象(在 ECMAScript 中伪对象到底该怎么解释,运行机制如何还不清楚?有人知道请给予解答 ),拥有自己的属性和方法,可以通过 toString() 方法来实现 string 类型的转换。 ECMAScript 定义所有的对象,不管是伪对象还是真实的对象,都可以实现 toString() 方法, string 被列为伪对象的行列,自然也拥有 toString() 方法。将数字类型数据转换为 string 的时候,可以在 toString() 方法中加入 2 、 8 、 16 参数,来实现不同进制的数据输出,例如 var n = 10; alert(n.toString(2)) 输出为 1010 , alert(n.toString(8)) 输出为 12 , n.toString() 和 n.toString(10) 相同。

ECMAScript 提供了两种方法来实现 string 类型转化为数字类型的方法: parseInt() 和 parseFloat() 。其他类型转换将会返回 NaN ( Not a Number )。
1 楼 flyingis 2006-06-13  
ECMAScript 原始数据类型有五种: Undefined 、 Null 、 Boolean 、 Number 、 String 。

typeof— 判断变量和值的数据类型,通常有 undefined 、 boolean 、 number 、 string 、 object 五种类型。

Undefined— 当变量被声明但没有初始化,或函数没有明确返回一个值的时候,该变量或函数即为 Undefined 类型。

Null—undefined 是 null 的一种派生,当代表一个对象的值不存在时,该对象返回 null 。

Boolean— 包含两个值, true and false , false 不等于 0 ,但 0 可以转换为 false 。

Number— 可以定义 32 位整型数据或 64 位浮点型数据。定义数字类型变量时,在数字前加 0 即为八进制,加 0x 为十六进制,它们计算后返回的结果统一为十进制。通过 var f = 1.0 可以定义一个浮点类型变量,有意思的是,当 f 被用于计算之前,它实际是以 String 类型存储的。当浮点类型数据很大或很小时(可以前后移动六位),将使用 E 表示法来表示浮点数据,最大可以存储 17 位数据。另外, isFinite() 方法可以判断一个数值是否有限, isNaN() 方法可以判断一个数据是非数字类型。

String—String 在 ECMAScript 中是原始数据类型,并且是唯一没有空间大小限制的数据类型。和 Java 不同的是, var s = “javascript” 和 var s = ‘javascript’ 均是合法的表示方法。

相关推荐

    ECMAScript 基础知识

    ### ECMAScript基础知识详解 #### 一、ECMAScript简介 ECMAScript 是 JavaScript 的核心规范,由欧洲计算机制造商协会(ECMA International)制定。它规定了浏览器等环境执行脚本语言的基础语法和数据类型等内容。...

    ECMAscript

    ### ECMAscript基础知识点详解 #### 一、ECMAscript概述 ECMAscript,通常简称ES,是一种脚本语言的标准规范,由欧洲计算机制造商协会(ECMA International)制定,旨在提供一种标准的脚本语言语法和功能,用于...

    《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础

    在深入探讨JavaScript高级编程技术之前,我们首先需要了解ECMAScript的基础知识。...有了扎实的ECMAScript基础,我们才能在前端开发、服务器端编程甚至桌面应用开发中运用JavaScript实现更复杂的业务逻辑。

    ECMAScript解读.doc

    ECMAScript 解读 ECMAScript 是一种脚本语言标准,由 Ecma ...掌握 ECMAScript 的基础知识是学习 JavaScript 高级程序设计的基础,理解 ECMAScript 可以帮助开发者更好地理解 JavaScript 语言,提高开发效率和质量。

    ECMAScript

    ### ECMAScript基础知识点概述 #### 一、ECMAScript简介 ECMAScript(简称ES)是一种被标准化的脚本语言规范,最初由Netscape公司提交至欧洲计算机制造商协会(ECMA International),并最终形成了国际标准ECMA-262...

    ECMAScript从零开始学-课件

    ECMAScript基础部分会介绍JavaScript的基本语法,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组和符号)、以及如何在代码中进行注释。 2. **值与类型**: 这...

    Java Script高级程序设计

    第2章 ECMAScript基础 第3章 对象基础 第4章 继承 第5章 浏览器中的JavaScript 第6章 DOM基础 第7章 正则表达式 第8章 检测浏览器和操作系统 第9章 事件 第10章 高级DOM技术 第11章 表单和数据完整性 第12章 表格...

    [ASP.NET Ajax] ECMAScript基础类以及Asp.net Ajax对类lt;Objectgt;的扩展

    由于我对JavaScript和薄弱,所以在看Asp.net Ajax类库的同时也翻出了ECMAScript顺便学习学习。在.NET中所有类都是继承自Object,同样在JS中也一样说有都继承Object,因此如果对Object进行了扩展,那所有继承Object类...

    “JavaScript程序设计基础”课程思政教学设计与实践.pdf

    JavaScript在前端开发中的重要性体现在三个方面:源代码开发阶段讲解JavaScript基础部分,涉及三个核心知识点:ECMAScript基础知识、BOM和DOM;涉及两个核心技能:表单验证和常见客户端网页特效制作。 课程思政元素...

    ecmascript手册

    ECMAScript 手册是关于ECMAScript语言的权威指南,该语言规范是JavaScript和JScript等编程语言的基础。ECMAScript由Brendan Eich在Netscape公司发明,并首次应用于Navigator 2.0浏览器,后来被所有Netscape和从...

    Qt-Quick核心编程之ECMAScript初探,适合Qt初学者

    通过学习ECMAScript的基础语法和特性,开发者可以更好地理解和应用QML。此外,ECMAScript的灵活性和强大的功能也为QML应用程序带来了无限的可能性。无论是对于初学者还是经验丰富的开发者来说,深入掌握ECMAScript都...

    JavaScript知识点总结文档

    ECMAScript 定义了语言的基础结构,包括但不限于: - **语法**:定义了变量声明、表达式、语句等的基本规则。 - **类型**:支持原始类型(如 number、string、boolean)和引用类型(如 object)。 - **语句**:if ...

    JavaScript教程

    #### 三、ECMAScript基础知识 - **ECMAScript语法**:虽然Java和ECMAScript有一些相似之处,但它们也有很多差异。ECMAScript语法包括变量声明、关键字、保留字、值类型等。 - **变量声明与命名**:学习如何声明变量...

    基于jQuery的带图标的竖行手风琴风格的菜单demo

    【ECMAScript基础】 ECMAScript是JavaScript的基础,定义了语言的语法和基本对象。在实现手风琴菜单时,我们可能会用到ECMAScript的变量声明、函数、条件语句、循环以及事件处理等特性。例如,`if`语句用于判断当前...

    ECMAScript5.1中文版说明

    2009年发布的ECMAScript 5.1版本是JavaScript的一个关键里程碑,它在ECMAScript 3的基础上进行了诸多改进和扩展,为开发者提供了更强大、更稳定的编程环境。本说明将深入探讨ECMAScript 5.1的主要特性和关键知识点。...

    基于jQuery的在线学习平台设计与实现

    总结来说,"基于jQuery的在线学习平台设计与实现"是一个全面展示前端开发技术的项目,它涵盖了DOM操作、事件处理、动画、Ajax交互、ECMAScript基础等多个重要知识点。通过这个项目,开发者不仅可以提升jQuery的熟练...

    jQuery实现一个自定义的单选按钮radio

    在本文中,我们将深入探讨如何使用jQuery来实现一个自定义的单选按钮(radio)组件,同时也会涉及相关的JavaScript和ECMAScript基础知识。 ### 1. jQuery基础 首先,我们需要了解jQuery的基本用法。jQuery通过 `$`...

    ecmascript 6 入门.pdf

    ECMAScript 6(ES6),是JavaScript语言的下一代标准,于2015年6月正式发布。它由ECMA国际标准化组织制定,...通过学习和掌握ES6,开发者可以更高效地编写现代JavaScript代码,并为未来可能的ECMAScript标准奠定基础。

Global site tag (gtag.js) - Google Analytics