您的当前位置:首页JavaScript教程之初识对象
广告

JavaScript教程之初识对象

2023-12-01 来源:旭新科技网

JavaScript 语言是基于对象的(Object-Based ),而不是面向对象的(object-oriented )。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、 继承、 重载等有关面向对象语言的许多功能。 而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。

虽然 JavaScript 语言是一门基于对象的, 但它还是具有一些面向对象的基本特征。 它可以根据需要创建自己的对象, 从而进一步扩大 JavaScript 的应用范围,增强编写功能强大的 Web 文档。

对象的基础知识

1、对象的基本结构

JavaScript 中的对象是由属性(properties) 和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位, 从而与变量相关联; 后者是指对象能够按照设计者的意图而被执行, 从而与特定的函数相联。

2、引用对象的途径

一个对象要真正地被使用,可采用以下几种方式获得:引用 JavaScript 内部对象、由浏览器环境中提供和创建新对象。这就是说一个对象在被引用之前, 这个对象必须存在, 否则引用将毫无意义,而出现错误信息。 从上面中我们可以看出 JavaScript 引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。

3、有关对象操作语句

JavaScript 不是一纯面向对象的语言, 它设有提供面向对象语言的许多功能,因此 JavaScript 设计者之所以把它你“ 基于对象” 而不是面向对象的语言,在JavaScript 中提供了几个用于操作对象的语句和关键字及运算符。

For...in 语句

格式如下:

For (对象属性名 in 已知对象名)

说明:1、该语句的功能是用于对已知对象的所有属性进行操作的控制循环。 它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。2、该语句的优点就是无需知道对象中属性的个数即可进行操作。

with 语句

使用该语句的意思是: 在该语句体内, 任何对变量的引用被认为是这个对象的属性,以节省一些代码。

格式如下:

with object{

...}

所有在 with 语句后的花括号中的语句,都是在后面 object 对象的作用域的。

this 关键字

this 是对当前的引用,在 JavaScript 由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用, 而另一个对象有可能又要引用另一个对象, 这样有可能造成混乱, 最后自己已不知道现在引用的那一个对象, 为此JavaScript 提供了一个用于将对象指定当前对象的语句 this。

New 运算符

虽然在 JavaScript 中对象的功能已经是非常强大的了。 但更强大的是设计人员可以按照需求来创建自己的对象,以满足某一特定的要求。使用 New 运算符可以创建一个新的对象。其创建对象使用如下格式:

Newobject = new Object(Parameters table);

其中 Newobject 创建的新对象:object 是已经存在的对象; parameters table 参数表;new 是 JavaScript 中的命令语句。

4、对象属性的引用

对象属性的引用可由下列三种方式之一实现:

1.使用点(.)运算符

university.Name=“云南省”

university.city=“昆明市”

university.Date="1999"

其中 university 是一个已经存在的对象,Name、City、Date 是它的三个属性,并通过操作对其赋值。

2.通过对象的下标实现引用

university[0]=“云南”

university[1]=“昆明市”

university[2]="1999"

通过数组形式的访问属性,可以使用循环操作获取其值。

3.通过字符串的形式实现

university["Name"]=“云南”

university["City"]=“昆明市”

university["Date"]="1999"

5、对象的方法的引用

在 JavaScript 中对象方法的引用是非常简单的。

格式:ObjectName.methods()

实际上 methods()=FunctionName 方法实质上是一个函数。 如引用 university对象中的 showmy()方法,则可使用:

document.write (university.showmy()) 或 document.write(university)

小编还为您整理了以下内容,可能对您也有帮助:

JavaScript教程--从入门到精通(2)

JavaScript基本数据结构

JavaScript提供脚本语言的编程与C++非常相似 它只是去掉了C语言中有关指针等容易产生的错误 并提供了功能强大的类库 对于已经具备C++或C语言的人来说 学习JavaScript脚本语言是一件非常轻松愉快的事

一 JavaScript代码的加入

JavaScript的脚本包括在HTML中 它成为HTML文档的一部分 与HTML标识相结合 构成了一个功能强大的Internet网上编程语言 可以直接将JavaScript脚本加入文档

<Script Language = JavaScript > JavaScript语言代码 JavaScript 语言代码; </Script>

说明   通过标识<Script> </Script>指明JavaScript脚本源代码将放入其间   通过属性Language = JavaScript 说明标识中是使用的何种语言 这里是JavaScript语言 表示在JavaScript中使用的语言

下面是将JavaScript脚本加入Web文档中的例子:l<HTML><Head><Script Language = JavaScript >document Write( 这是赛迪网互动学校 );document close();</Script></Head></HTML>

在浏览器的窗口中调用l 则显示 这是赛迪网互动学校 字串 见图 所示

图 说明:   Document write()是文档对象的输出函数 其功能是将括号中的字符或变量值输出到窗口 document close()是将输出关闭 可将<Script> </Script>标识放入head> </Head>或<Body> </Body>之间 将JavaScript标识放置<Head> </Head>在头部之间 使之在主页和其余部分代码之前装载 从而可使代码的功能更强大 可以将JavaScript标识放置在<Body> </Body>主体之间以实现某些部分动态地创建文档

二 基本数据类型

JavaScript脚本语言同其它语言一样 有它自身的基本数据类型 表达式和算术运算符以及程序的基本框架结构 JavaScript提供了四种基本的数据类型用来处理数字和文字 而变量提供存放信息的地方 表达式则可以完成较复杂的信息处理

基本数据类型

在JavaScript中四种基本的数据类型 数值(整数和实数) 字符串型(用 号或 括起来的字符或数值) 布尔型(使True或False表示)和空值 在JavaScript的基本类型中的数据可以是常量 也可以变量 由于JavaScript采用弱类型的形式 因而一个数据的变量或常量不必首先作声明 而是在使用或赋值时确定其数据的类型的 当然也可以先声明该数据的类型 它是通过在赋值时自动说明其数据类型的

常量  整型常量JavaScript的常量通常又称字面常量 它是不能改变的数据 其整型常量可以使用十六进制 八进制和十进制表示其值  实型常量实型常量是由整数部分加小数部分表示 如 可以使用科学或标准方法表示 E e 等

布尔值

布尔常量只有两种状态 True或False 它主要用来说明或代表一种状态或标志 以说明操作流程 它与C++是不一样的 C++可以用1或0表示其状态 而JavaScript只能用True或False表示其状态

字符型常量

使用单引号( )或双引号( )括起来的一个或几个字符 如 This is a book of JavaScript ewrt 等  空值JavaScript中有一个空值null 表示什么也没有 如试图引用没有定义的变量 则返回一个Null值  特殊字符同C语言一样 JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符 通常称为控制字符     变量

变量的主要作用是存取数据 提供存放信息的容器 对于变量必须明确变量的命名 变量的类型 变量的声明及其变量的作用域  变量的命名JavaScript中的变量命名同其计算机语言非常相似 这里要注意以下两点 A 必须是一个有效的变量 即变量以字母开头 中间可以出现数字如test text 等 除下划线(-)作为连字符外 变量名称不能有空格 (+) (-) ( )或其它符号 B 不能使用JavaScript中的关键字作为变量 在JavaScript中定义了40多个类键字 这些关键是JavaScript内部使用的 不能作为变量的名称 如Var int double true不能作为变量的名称   在对变量命名时 最好把变量的意义与其代表的意思对应起来 以免出现错误

变量的类型

在JavaScript中 变量可以用命令Var作声明:var mytest;该例子定义了一个mytest变量 但没有赋予它的值 Var mytest= This is a book 该例子定义了一个mytest变量 同时赋予了它的值 在JavaScript中 变量以可以不作声明 而在使用时再根据数据的类型来确其变量的类型 如 x= y= xy= True cost= 等 其中x整数 y为字符串 xy为布尔型 cost为实型  变量的声明及其作用域JavaScript变量可以在使用前先作声明 并可赋值 通过使用var关键字对变量作声明 对变量作声明的最大好处就是能及时发现代码中的错误 因为JavaScript是采用动态编译的 而动态编译是不易发现代码中的错误 特别是变量命名的方面 对于变量还有一个重要性──那就是变量的作用域 在JavaScript中同样有全局变量和局部变量 全局变量是定义在所有函数体之外 其作用范围是整个函数 而局部变量是定义在函数体之内 只对其该函数是可见的 而对其它函数则是不可见的 三 表达式和运算符

1 表达式

在定义完变量后 就可以对它们进行赋值 改变 计算等一系列操作 这一过程通常又叫称一个叫表达式来完成 可以说它是变量 常量 布尔及运算符的集合 因此表达式可以分为算术表述式 字串表达式 赋值表达式以及布尔表达式等

2 运算符

运算符完成操作的一系列符号 在JavaScript中有算术运算符 如+ * /等 有比较运算符如!= ==等; 有逻辑布尔运算符如!(取反) | ||; 有字串运算如+ +=等   在JavaScript主要有双目运算符和单目运算符 其双目运算符由下列组成 操作数1 运算符 操作数2  即由两个操作数和一个运算符组成 如 + This + that 等 单目运算符 只需一个操作数 其运算符可在前或后 (1)算术运算符  JavaScript中的算术运算符有单目运算符和双目运算符 双目运算符 +(加) (减) *(乘) /(除) %(取模) |(按位或) &(按位与) <<(左移) >>(右移) >>>(右移 零填充) 单目运算符 (取反) ~(取补) ++(递加 ) (递减 ) (2)比较运算符  比较运算符它的基本操作过程是 首先对它的操作数进行比较 尔后再返回一个true或False值 有8个比较运算符:<(小于) >(大于) <=(小于等于) >=(大于等于) ==(等于) !=(不等于) (3)布尔逻辑运算符  在JavaScript中增加了几个布尔逻辑运算符: !(取反) &=(与之后赋值) &(逻辑与) |=(或之后赋值) |(逻辑或) ^=(异或之后赋值) ^(逻辑异或) ?:(三目操作符) ||(或) ==(等于) |=(不等于)   其中三目操作符主要格式如下 操作数?结果1 结果2  若操作数的结果为真 则表述式的结果为结果1 否则为结果2

四 范例  下面是一个跑马灯效果的JavaScript文档

l<><head><script Language= JavaScript >var msg= 这是一个跑马灯效果的JavaScript文档 ;var interval = ;var spacelen = ;var space = ;var seq= ;function Scroll() { len = msg length;window status = msg substring( seq+ );seq++;if ( seq >= len ) { seq = spacelen; window setTimeout( Scroll (); interval );}elsewindow setTimeout( Scroll(); interval );} function Scroll () { var out= ;for (i= ; i<=spacelen/space length; i++) out += space ;out = out + msg;len=out length;window status=out substring(seq len);seq++;if ( seq >= len ) { seq = ; };window setTimeout( Scroll (); interval );} Scroll();</script><body></body></>

lishixin/Article/program/Java/JSP/201311/19285

    JavaScript教程--从入门到精通(2)

    JavaScript基本数据结构

    JavaScript提供脚本语言的编程与C++非常相似 它只是去掉了C语言中有关指针等容易产生的错误 并提供了功能强大的类库 对于已经具备C++或C语言的人来说 学习JavaScript脚本语言是一件非常轻松愉快的事

    一 JavaScript代码的加入

    JavaScript的脚本包括在HTML中 它成为HTML文档的一部分 与HTML标识相结合 构成了一个功能强大的Internet网上编程语言 可以直接将JavaScript脚本加入文档

    <Script Language = JavaScript > JavaScript语言代码 JavaScript 语言代码; </Script>

    说明   通过标识<Script> </Script>指明JavaScript脚本源代码将放入其间   通过属性Language = JavaScript 说明标识中是使用的何种语言 这里是JavaScript语言 表示在JavaScript中使用的语言

    下面是将JavaScript脚本加入Web文档中的例子:l<HTML><Head><Script Language = JavaScript >document Write( 这是赛迪网互动学校 );document close();</Script></Head></HTML>

    在浏览器的窗口中调用l 则显示 这是赛迪网互动学校 字串 见图 所示

    图 说明:   Document write()是文档对象的输出函数 其功能是将括号中的字符或变量值输出到窗口 document close()是将输出关闭 可将<Script> </Script>标识放入head> </Head>或<Body> </Body>之间 将JavaScript标识放置<Head> </Head>在头部之间 使之在主页和其余部分代码之前装载 从而可使代码的功能更强大 可以将JavaScript标识放置在<Body> </Body>主体之间以实现某些部分动态地创建文档

    二 基本数据类型

    JavaScript脚本语言同其它语言一样 有它自身的基本数据类型 表达式和算术运算符以及程序的基本框架结构 JavaScript提供了四种基本的数据类型用来处理数字和文字 而变量提供存放信息的地方 表达式则可以完成较复杂的信息处理

    基本数据类型

    在JavaScript中四种基本的数据类型 数值(整数和实数) 字符串型(用 号或 括起来的字符或数值) 布尔型(使True或False表示)和空值 在JavaScript的基本类型中的数据可以是常量 也可以变量 由于JavaScript采用弱类型的形式 因而一个数据的变量或常量不必首先作声明 而是在使用或赋值时确定其数据的类型的 当然也可以先声明该数据的类型 它是通过在赋值时自动说明其数据类型的

    常量  整型常量JavaScript的常量通常又称字面常量 它是不能改变的数据 其整型常量可以使用十六进制 八进制和十进制表示其值  实型常量实型常量是由整数部分加小数部分表示 如 可以使用科学或标准方法表示 E e 等

    布尔值

    布尔常量只有两种状态 True或False 它主要用来说明或代表一种状态或标志 以说明操作流程 它与C++是不一样的 C++可以用1或0表示其状态 而JavaScript只能用True或False表示其状态

    字符型常量

    使用单引号( )或双引号( )括起来的一个或几个字符 如 This is a book of JavaScript ewrt 等  空值JavaScript中有一个空值null 表示什么也没有 如试图引用没有定义的变量 则返回一个Null值  特殊字符同C语言一样 JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符 通常称为控制字符     变量

    变量的主要作用是存取数据 提供存放信息的容器 对于变量必须明确变量的命名 变量的类型 变量的声明及其变量的作用域  变量的命名JavaScript中的变量命名同其计算机语言非常相似 这里要注意以下两点 A 必须是一个有效的变量 即变量以字母开头 中间可以出现数字如test text 等 除下划线(-)作为连字符外 变量名称不能有空格 (+) (-) ( )或其它符号 B 不能使用JavaScript中的关键字作为变量 在JavaScript中定义了40多个类键字 这些关键是JavaScript内部使用的 不能作为变量的名称 如Var int double true不能作为变量的名称   在对变量命名时 最好把变量的意义与其代表的意思对应起来 以免出现错误

    变量的类型

    在JavaScript中 变量可以用命令Var作声明:var mytest;该例子定义了一个mytest变量 但没有赋予它的值 Var mytest= This is a book 该例子定义了一个mytest变量 同时赋予了它的值 在JavaScript中 变量以可以不作声明 而在使用时再根据数据的类型来确其变量的类型 如 x= y= xy= True cost= 等 其中x整数 y为字符串 xy为布尔型 cost为实型  变量的声明及其作用域JavaScript变量可以在使用前先作声明 并可赋值 通过使用var关键字对变量作声明 对变量作声明的最大好处就是能及时发现代码中的错误 因为JavaScript是采用动态编译的 而动态编译是不易发现代码中的错误 特别是变量命名的方面 对于变量还有一个重要性──那就是变量的作用域 在JavaScript中同样有全局变量和局部变量 全局变量是定义在所有函数体之外 其作用范围是整个函数 而局部变量是定义在函数体之内 只对其该函数是可见的 而对其它函数则是不可见的 三 表达式和运算符

    1 表达式

    在定义完变量后 就可以对它们进行赋值 改变 计算等一系列操作 这一过程通常又叫称一个叫表达式来完成 可以说它是变量 常量 布尔及运算符的集合 因此表达式可以分为算术表述式 字串表达式 赋值表达式以及布尔表达式等

    2 运算符

    运算符完成操作的一系列符号 在JavaScript中有算术运算符 如+ * /等 有比较运算符如!= ==等; 有逻辑布尔运算符如!(取反) | ||; 有字串运算如+ +=等   在JavaScript主要有双目运算符和单目运算符 其双目运算符由下列组成 操作数1 运算符 操作数2  即由两个操作数和一个运算符组成 如 + This + that 等 单目运算符 只需一个操作数 其运算符可在前或后 (1)算术运算符  JavaScript中的算术运算符有单目运算符和双目运算符 双目运算符 +(加) (减) *(乘) /(除) %(取模) |(按位或) &(按位与) <<(左移) >>(右移) >>>(右移 零填充) 单目运算符 (取反) ~(取补) ++(递加 ) (递减 ) (2)比较运算符  比较运算符它的基本操作过程是 首先对它的操作数进行比较 尔后再返回一个true或False值 有8个比较运算符:<(小于) >(大于) <=(小于等于) >=(大于等于) ==(等于) !=(不等于) (3)布尔逻辑运算符  在JavaScript中增加了几个布尔逻辑运算符: !(取反) &=(与之后赋值) &(逻辑与) |=(或之后赋值) |(逻辑或) ^=(异或之后赋值) ^(逻辑异或) ?:(三目操作符) ||(或) ==(等于) |=(不等于)   其中三目操作符主要格式如下 操作数?结果1 结果2  若操作数的结果为真 则表述式的结果为结果1 否则为结果2

    四 范例  下面是一个跑马灯效果的JavaScript文档

    l<><head><script Language= JavaScript >var msg= 这是一个跑马灯效果的JavaScript文档 ;var interval = ;var spacelen = ;var space = ;var seq= ;function Scroll() { len = msg length;window status = msg substring( seq+ );seq++;if ( seq >= len ) { seq = spacelen; window setTimeout( Scroll (); interval );}elsewindow setTimeout( Scroll(); interval );} function Scroll () { var out= ;for (i= ; i<=spacelen/space length; i++) out += space ;out = out + msg;len=out length;window status=out substring(seq len);seq++;if ( seq >= len ) { seq = ; };window setTimeout( Scroll (); interval );} Scroll();</script><body></body></>

    lishixin/Article/program/Java/JSP/201311/19285

      如何理解Javascript中类和对象这两个概念

      首先,对象的定义大致如下:

      对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象。

      简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。

      var o = {

      p: "Hello World"

      };

      上面代码中,大括号就定义了一个对象,它被赋值给变量o。这个对象内部包含一个键值对(又称为“成员”),p是“键名”(成员的名称),字符串“Hello World”是“键值”(成员的值)。键名与键值之间用冒号分隔。如果对象内部包含多个键值对,每个键值对之间用逗号分隔。

      我们从两个层次来理解。

      (1)“对象”是单个实物的抽象。

      一本书、一辆汽车、一个人都可以是“对象”,一个数据库、一张网页、一个与远程服务器的连接也可以是“对象”。当实物被抽象成“对象”,实物之间的关系就变成了“对象”之间的关系,从而就可以模拟现实情况,针对“对象”进行编程。

      (2)“对象”是一个容器,封装了“属性”(property)和“方法”(method)。

      所谓“属性”,就是对象的状态;所谓“方法”,就是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,“属性”记录具体是那一种动物,“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。

      其次,典型的面向对象编程语言(比如C++和Java),存在“类”(class)这样一个概念。所谓“类”就是对象的模板,对象就是“类”的实例。JavaScript语言没有“类”,而改用构造函数(constructor)作为对象的模板。

      前面说过,“对象”是单个实物的抽象。所以,通常需要一个模板,表示某一类实物的共同特征,然后“对象”根据这个模板生成。

      所谓“构造函数”,就是专门用来生成“对象”的函数。它提供模板,作为对象的基本结构。一个构造函数,可以生成多个对象,这些对象都有相同的结构。

      javascript中的对象包括哪些

      javascript中的对象包括自定义类,函数和一些原生对象。
      在JavaScript中,通常可以使用构造函数来创建特定类型的对象。诸如Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。 此外,我们也可以创建自定义的构造函数。
      举例如下:
      function Person(name, age, job) {
      this.name = name;
      this.age = age;
      this.job = job;
      }
      这里是用new来实例化一个person对象:
      var person1 = new Person('Weiwei', 27, 'Student');
      var person2 = new Person('Lily', 25, 'Doctor');

      以这种方式调用构造函数实际上会经历以下4个步骤:
      1、创建一个新对象(实例)
      2、将构造函数的作用域赋给新对象(也就是重设了this的指向,this就指向了这个新对象)
      3、执行构造函数中的代码(为这个新对象添加属性)
      4、返回新对象

      javascript中的对象包括哪些

      javascript中的对象包括自定义类,函数和一些原生对象。
      在JavaScript中,通常可以使用构造函数来创建特定类型的对象。诸如Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。 此外,我们也可以创建自定义的构造函数。
      举例如下:
      function Person(name, age, job) {
      this.name = name;
      this.age = age;
      this.job = job;
      }
      这里是用new来实例化一个person对象:
      var person1 = new Person('Weiwei', 27, 'Student');
      var person2 = new Person('Lily', 25, 'Doctor');

      以这种方式调用构造函数实际上会经历以下4个步骤:
      1、创建一个新对象(实例)
      2、将构造函数的作用域赋给新对象(也就是重设了this的指向,this就指向了这个新对象)
      3、执行构造函数中的代码(为这个新对象添加属性)
      4、返回新对象

      javascript中的对象由哪两个基本元素构成

      javascript中的对象由属性和方法基本元素构成。根据查询相关公开信息显示:JavaScript中的对象是由属性和方法两个基本的元素的构成的,对象的属性是指对象的背景色,长度,名称等。

      javascript中的对象由哪两个基本元素构成

      javascript中的对象由属性和方法基本元素构成。根据查询相关公开信息显示:JavaScript中的对象是由属性和方法两个基本的元素的构成的,对象的属性是指对象的背景色,长度,名称等。

      javascript中什么是 对象 什么是 对象 什么是构造函数 什么是方法呀 ?好纠结 不懂

      这些概念要慢慢理解,不是一下子就转过来的。

      C语言是面向过程的,javascript是基于对象的,两者有根本的差别,虽然语法很像

      先讲下面向对象跟面向过程(javascript不是面向对象,是基于对象,但跟面向对象概念差不多的)

      面向过程就是函数调用函数这样子完成一个功能。

      你最熟悉的C语言,只要一写程序,就有一个main函数,其它函数都是辅助的,只有在main里调用到才会运行

      面向对象就是你要完成一个功能,就要先构造一个对象,再用这个对象的方法(就是函数)去完成功能

      比如浏览器里顶级对象就是window。js里常用的那些方法如alert,setTimeout,confirm等都是window的方法,你可以用window.alert调用,也可以直接调用,直接调用的时候它还是调用到window.alert上面的

      1、什么是对象

      对象就是东西,js中最基本的东西是内置的object

      对象可以有方法,可以有属性

      2、构造函数 是创建对象时初始化对象 的函数,就好比对象工厂,用于规定对象的基本属性和方法。

      3、属性和方法 属性就是对象的特点,比如一张桌子有四条腿,一个面。

      可以这样声明 var table={} //定义对象时{}和new Object()一样

      table.legsNum=4 //桌子有四条腿

      方法就是对象的功能

      桌子可以用来吃饭

      table.forEat=function(){alert("我在吃饭")}

      JavaScript教程--从入门到精通(3)

      JavaScript程序构成

      JavaScript脚本语言的基本构成是由控制语句 函数 对象 方法 属性等 来实现编程的

      一 程序控制流  在任何一种语言中 程序控制流是必须的 它能使得整个程序减小混乱 使之顺利按其一定的方式执行 下面是JavaScript常用的程序控制流结构及语句:1 if条件语句 基本格式if(表述式)语句段1 else语句段2  功能 若表达式为true 则执行语句段1 否则执行语句段2  说明 if else 语句是JavaScript中最基本的控制语句 通过它可以改变语句的执行顺序 表达式中必须使用关系语句 来实现判断 它是作为一个布尔值来估算的 它将零和非零的数分别转化成false和true 若if后的语句有多行 则必须使用花括号将其括起来  if语句的嵌套if(布尔值)语句1 else(布尔值)语句2 else if(布尔值)语句3 ……else 语句4  在这种情况下 每一级的布尔表述式都会被计算 若为真 则执行其相应的语句 否则执行else后的语句  2 For循环语句 基本格式for(初始化 条件 增量)语句集  功能 实现条件循环 当条件成立时 执行语句集 否则跳出循环体  说明 初始化参数告诉循环的开始位置 必须赋予变量的初值 条件 是用于判别循环停止时的条件 若条件满足 则执行循环体 否则 跳出 增量 主要定义循环控制变量在每次循环时按什么方式变化 三个主要语句之间 必须使用逗号分隔  3 while循环 基本格式while(条件)语句集 该语句与For语句一样 当条件为真时 重复循环 否则退出循环  For与while语句  两种语句都是循环语句 使用For语句在处理有关数字时更易看懂 也较紧凑 而while循环对复杂的语句效果更特别

      4 break和continue语句  与C++语言相同 使用break语句使得循环从For或while中跳出 continue使得跳过循环内剩余的语句而进入下一次循环

      二 函数  函数为程序设计人员提供了一个丰常方便的能力 通常在进行一个复杂的程序设计时 总是根据所要完成的功能 将程序划分为一些相对独立的部分 每部分编写一个函数 从而 使各部分充分独立 任务单一 程序清晰 易懂 易读 易维护 JavaScript函数可以封装那些在程序中可能要多次用到的模块 并可作为事件驱动的结果而调用的程序 从而实现一个函数把它与事件驱动相关联 这是与其它语言不样的地方

      1 JavaScript函数定义Function 函数名 (参数 变元){函数体; Return 表达式;}说明  当调用函数时 所用变量或字面量均可作为变元传递  函数由关键字Function定义  函数名 定义自己函数的名字  参数表 是传递给函数使用或操作的值 其值可以是常量 变量或其它表达式  通过指定函数名(实参)来调用一个函数  必须使用Return将值返回  函数名对大小写是敏感的  2 函数中的形式参数   在函数的定义中 我们看到函数名后有参数表 这些参数变量可能是一个或几个 那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments Length来检查参数的个数 例 Function function_Name(exp exp exp exp )Number =function _Name arguments length;if (Number> )document wrile(exp );if (Number> )document write(exp );if(Number> )document write(exp );

      三 事件驱动及事件处理1 基本概念  JavaScript是基于对象(object based)的语言 这与Java不同 Java是面向对象的语言 而基于对象的基本特征 就是采用事件驱动(event driven) 它是在用形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件(Event) 而由鼠标或热键引发的一连串程序的动作 称之为事件驱动(Event Driver) 而对事件进行处理程序或函数 我们称之为事件处理程序(Event Handler)

      2 事件处理程序  在JavaScript中对象事件的处理通常由函数(Function)担任 其基本格式与函数全部一样 可以将前面所介绍的所有函数作为事件处理程序 格式如下 Function 事件处理名(参数表){事件处理语句集 ……}

      3 事件驱动  JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的 它主要有以下几个事件 (1)单击事件onClick  当用户单击鼠标按钮时 产生onClick事件 同时onClick指定的事件处理程序或代码将被调用执行 通常在下列基本对象中产生 button(按钮对象)checkbox(复选框)或(检查列表框)radio (单选钮)reset buttons(重要按钮)submit buttons(提交按钮)

      例 可通过下列按钮激活change()文件 <Form><Input type= button Value= onClick= change() ></Form>  在onClick等号后 可以使用自己编写的函数作为事件处理程序 也可以使用JavaScript中内部的函数 还可以直接使用JavaScript的代码等 例 <Input type= button value= onclick=alert( 这是一个例子 );(2)onChange改变事件  当利用text或texturea元素输入字符值改变时发该事件 同时当在select表格项中一个选项状态改变后也会引发该事件 例 <Form><Input type= text name= Test value= Test onCharge= check( this test) ></Form>(3)选中事件onSelect  当Text或Textarea对象中的文字被加亮后 引发该事件 (4)获得焦点事件onFocus  当用户单击Text或textarea以及select对象时 产生该事件 此时该对象成为前台对象 (5)失去焦点onBlur  当text对象或textarea对象以及select对象不再拥有焦点 而退到后台时 引发该文件 他与onFocas事件是一个对应的关系 (6)载入文件onLoad  当文档载入时 产生该事件 onLoad一个作用就是在首次载入一个文档时检测cookie的值 并用一个变量为其赋值 使它可以被源代码使用 (7)卸载文件onUnload  当Web页面退出时引发onUnload事件 并可更新Cookie的状态

      四 范例  范例 下例程序是一个自动装载和自动卸载的例子 即当装入HTML文档时调用loadform()函数 而退出该文档进入另一HTML文档时则首先调用unloadform()函数 确认后方可进入 <HTML><HEAD><script Language= JavaScript ><! function loadform(){alert( 这是一个自动装载例子! );}function unloadform(){alert( 这是一个卸载例子! );}// ></Script></HEAD><BODY OnLoad= loadform() OnUnload= unloadform() ><a >调用</a></BODY></HTML> 范例 这是一个获取浏览器版本号的程序 该程序首先显示一个波浪一提示信息 之后显示浏览器的版本号有关信息 <><head><script language= JavaScript ><! // >function makeArray(n){this length=nreturn this}function hexfromdec(num) {hex=new makeArray( );var hexstring= ;var shifthex= ;var temp =num;for(x= ; x>= ; x ) {hex[x]=Math round(temp /shifthex );hex[x ]=temp hex[x] * shifthex;temp =hex[x ];shifthex /= ;}for (x= ; x>= ; x ) { hexstring+=getletter(hex[x]); }return (hexstring);} function getletter(num) {if (num < ) { return num; }else {if (num == ) { return A }if (num == ) { return B }if (num == ) { return C }if (num == ) { return D }if (num == ) { return E }if (num == ) { return F }}}function rainbow(text){var color_d ;var allstring= ;for(i= ;i<text length;i=i+ ){color_d = *Math sin(i/(text length/ ));color_h =hexfromdec(color_d );allstring+= <FONT COLOR= +color_h + ff +color_h + > +text substring(i i+ )+ </FONT> ;}return allstring;} function sizefont(text){var color_d ;var allstring= ;var flag= ;for(i= j= ;i<text length;i=i+ ){if (flag== ) {j++;if (j>= ) {flag= ;}}if (flag== ) {j=j ;if (j<= ) {flag= ; }}allstring+= <FONT SIZE= + j + > + text substring(i i+ ) + </FONT> ;}return allstring;}document write( <font size= ><CENTER> )document write( <BR><BR> )document write( sizefont( 这是一个获取WEB浏览器的程序 ))document write( </CENTER></font> )document write( 浏览器名称: +navigator appName+ <br> );document write( 版本号: +navigator appVersion+ <br> );document write( 代码名字: +navigator appCodeName+ <br> );document write( 用户代理标识: +navigator userAgent);</script><body></body></>输出结果图 所示

      lishixin/Article/program/Java/JSP/201311/19230

        JavaScript教程--从入门到精通(3)

        JavaScript程序构成

        JavaScript脚本语言的基本构成是由控制语句 函数 对象 方法 属性等 来实现编程的

        一 程序控制流  在任何一种语言中 程序控制流是必须的 它能使得整个程序减小混乱 使之顺利按其一定的方式执行 下面是JavaScript常用的程序控制流结构及语句:1 if条件语句 基本格式if(表述式)语句段1 else语句段2  功能 若表达式为true 则执行语句段1 否则执行语句段2  说明 if else 语句是JavaScript中最基本的控制语句 通过它可以改变语句的执行顺序 表达式中必须使用关系语句 来实现判断 它是作为一个布尔值来估算的 它将零和非零的数分别转化成false和true 若if后的语句有多行 则必须使用花括号将其括起来  if语句的嵌套if(布尔值)语句1 else(布尔值)语句2 else if(布尔值)语句3 ……else 语句4  在这种情况下 每一级的布尔表述式都会被计算 若为真 则执行其相应的语句 否则执行else后的语句  2 For循环语句 基本格式for(初始化 条件 增量)语句集  功能 实现条件循环 当条件成立时 执行语句集 否则跳出循环体  说明 初始化参数告诉循环的开始位置 必须赋予变量的初值 条件 是用于判别循环停止时的条件 若条件满足 则执行循环体 否则 跳出 增量 主要定义循环控制变量在每次循环时按什么方式变化 三个主要语句之间 必须使用逗号分隔  3 while循环 基本格式while(条件)语句集 该语句与For语句一样 当条件为真时 重复循环 否则退出循环  For与while语句  两种语句都是循环语句 使用For语句在处理有关数字时更易看懂 也较紧凑 而while循环对复杂的语句效果更特别

        4 break和continue语句  与C++语言相同 使用break语句使得循环从For或while中跳出 continue使得跳过循环内剩余的语句而进入下一次循环

        二 函数  函数为程序设计人员提供了一个丰常方便的能力 通常在进行一个复杂的程序设计时 总是根据所要完成的功能 将程序划分为一些相对独立的部分 每部分编写一个函数 从而 使各部分充分独立 任务单一 程序清晰 易懂 易读 易维护 JavaScript函数可以封装那些在程序中可能要多次用到的模块 并可作为事件驱动的结果而调用的程序 从而实现一个函数把它与事件驱动相关联 这是与其它语言不样的地方

        1 JavaScript函数定义Function 函数名 (参数 变元){函数体; Return 表达式;}说明  当调用函数时 所用变量或字面量均可作为变元传递  函数由关键字Function定义  函数名 定义自己函数的名字  参数表 是传递给函数使用或操作的值 其值可以是常量 变量或其它表达式  通过指定函数名(实参)来调用一个函数  必须使用Return将值返回  函数名对大小写是敏感的  2 函数中的形式参数   在函数的定义中 我们看到函数名后有参数表 这些参数变量可能是一个或几个 那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments Length来检查参数的个数 例 Function function_Name(exp exp exp exp )Number =function _Name arguments length;if (Number> )document wrile(exp );if (Number> )document write(exp );if(Number> )document write(exp );

        三 事件驱动及事件处理1 基本概念  JavaScript是基于对象(object based)的语言 这与Java不同 Java是面向对象的语言 而基于对象的基本特征 就是采用事件驱动(event driven) 它是在用形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件(Event) 而由鼠标或热键引发的一连串程序的动作 称之为事件驱动(Event Driver) 而对事件进行处理程序或函数 我们称之为事件处理程序(Event Handler)

        2 事件处理程序  在JavaScript中对象事件的处理通常由函数(Function)担任 其基本格式与函数全部一样 可以将前面所介绍的所有函数作为事件处理程序 格式如下 Function 事件处理名(参数表){事件处理语句集 ……}

        3 事件驱动  JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的 它主要有以下几个事件 (1)单击事件onClick  当用户单击鼠标按钮时 产生onClick事件 同时onClick指定的事件处理程序或代码将被调用执行 通常在下列基本对象中产生 button(按钮对象)checkbox(复选框)或(检查列表框)radio (单选钮)reset buttons(重要按钮)submit buttons(提交按钮)

        例 可通过下列按钮激活change()文件 <Form><Input type= button Value= onClick= change() ></Form>  在onClick等号后 可以使用自己编写的函数作为事件处理程序 也可以使用JavaScript中内部的函数 还可以直接使用JavaScript的代码等 例 <Input type= button value= onclick=alert( 这是一个例子 );(2)onChange改变事件  当利用text或texturea元素输入字符值改变时发该事件 同时当在select表格项中一个选项状态改变后也会引发该事件 例 <Form><Input type= text name= Test value= Test onCharge= check( this test) ></Form>(3)选中事件onSelect  当Text或Textarea对象中的文字被加亮后 引发该事件 (4)获得焦点事件onFocus  当用户单击Text或textarea以及select对象时 产生该事件 此时该对象成为前台对象 (5)失去焦点onBlur  当text对象或textarea对象以及select对象不再拥有焦点 而退到后台时 引发该文件 他与onFocas事件是一个对应的关系 (6)载入文件onLoad  当文档载入时 产生该事件 onLoad一个作用就是在首次载入一个文档时检测cookie的值 并用一个变量为其赋值 使它可以被源代码使用 (7)卸载文件onUnload  当Web页面退出时引发onUnload事件 并可更新Cookie的状态

        四 范例  范例 下例程序是一个自动装载和自动卸载的例子 即当装入HTML文档时调用loadform()函数 而退出该文档进入另一HTML文档时则首先调用unloadform()函数 确认后方可进入 <HTML><HEAD><script Language= JavaScript ><! function loadform(){alert( 这是一个自动装载例子! );}function unloadform(){alert( 这是一个卸载例子! );}// ></Script></HEAD><BODY OnLoad= loadform() OnUnload= unloadform() ><a >调用</a></BODY></HTML> 范例 这是一个获取浏览器版本号的程序 该程序首先显示一个波浪一提示信息 之后显示浏览器的版本号有关信息 <><head><script language= JavaScript ><! // >function makeArray(n){this length=nreturn this}function hexfromdec(num) {hex=new makeArray( );var hexstring= ;var shifthex= ;var temp =num;for(x= ; x>= ; x ) {hex[x]=Math round(temp /shifthex );hex[x ]=temp hex[x] * shifthex;temp =hex[x ];shifthex /= ;}for (x= ; x>= ; x ) { hexstring+=getletter(hex[x]); }return (hexstring);} function getletter(num) {if (num < ) { return num; }else {if (num == ) { return A }if (num == ) { return B }if (num == ) { return C }if (num == ) { return D }if (num == ) { return E }if (num == ) { return F }}}function rainbow(text){var color_d ;var allstring= ;for(i= ;i<text length;i=i+ ){color_d = *Math sin(i/(text length/ ));color_h =hexfromdec(color_d );allstring+= <FONT COLOR= +color_h + ff +color_h + > +text substring(i i+ )+ </FONT> ;}return allstring;} function sizefont(text){var color_d ;var allstring= ;var flag= ;for(i= j= ;i<text length;i=i+ ){if (flag== ) {j++;if (j>= ) {flag= ;}}if (flag== ) {j=j ;if (j<= ) {flag= ; }}allstring+= <FONT SIZE= + j + > + text substring(i i+ ) + </FONT> ;}return allstring;}document write( <font size= ><CENTER> )document write( <BR><BR> )document write( sizefont( 这是一个获取WEB浏览器的程序 ))document write( </CENTER></font> )document write( 浏览器名称: +navigator appName+ <br> );document write( 版本号: +navigator appVersion+ <br> );document write( 代码名字: +navigator appCodeName+ <br> );document write( 用户代理标识: +navigator userAgent);</script><body></body></>输出结果图 所示

        lishixin/Article/program/Java/JSP/201311/19230

          如何理解并学习javascript中的面向对象

          面向对象中的几个概念:

          一切事物皆对象

          对象具有封装和继承特性

          对象与对象之间使用消息通信,各自存在信息隐藏

          以这三点做为依据,C++ 是半面向对象半面向过程语言,因为,虽然他实现了类的封装、继承和多态,但存在非对象性质的全局函数和变量。Java、C# 是完全的面向对象语言,它们通过类的形式组织函数和变量,使之不能脱离对象存在。但这里函数本身是一个过程,只是依附在某个类上。

          然而,面向对象仅仅是一个概念或者编程思想而已,它不应该依赖于某个语言存在。比如 Java 采用面向对象思想构造其语言,它实现了类、继承、派生、多态、接口等机制。但是这些机制,只是实现面向对象编程的一种手段,而非必须。换言之,一门语言可以根据其自身特性选择合适的方式来实现面向对象。所以,由于大多数程序员首先学习或者使用的是类似 Java、C++ 等高级编译型语言(Java 虽然是半编译半解释,但一般做为编译型来讲解),因而先入为主地接受了“类”这个面向对象实现方式,从而在学习脚本语言的时候,习惯性地用类式面向对象语言中的概念来判断该语言是否是面向对象语言,或者是否具备面向对象特性。这也是阻碍程序员深入学习并掌握 JavaScript 的重要原因之一。

          实际上,JavaScript 语言是通过一种叫做 原型(prototype)的方式来实现面向对象编程的。 基于类的(class-based)面向对象和 基于原型的 (prototype-based) 面向对象这两种方式在构造客观世界的方式上的差别。

          基于类的面向对象和基于原型的面向对象方式比较

          在基于类的面向对象方式中,对象(object)依靠 类(class)来产生。而在基于原型的面向对象方式中,对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的。举个客观世界的例子来说明二种方式认知的差异。例如工厂造一辆车,一方面,工人必须参照一张工程图纸,设计规定这辆车应该如何制造。这里的工程图纸就好比是语言中的 类 (class),而车就是按照这个 类(class)制造出来的;另一方面,工人和机器 ( 相当于 constructor) 利用各种零部件如发动机,轮胎,方向盘 ( 相当于 prototype 的各个属性 ) 将汽车构造出来。

          事实上关于这两种方式谁更为彻底地表达了面向对象的思想,目前尚有争论。但笔者认为原型式面向对象是一种更为彻底的面向对象方式,理由如下:

          首先,客观世界中的对象的产生都是其它实物对象构造的结果,而抽象的“图纸”是不能产生“汽车”的,也就是说,类是一个抽象概念而并非实体,而对象的产生是一个实体的产生;

          其次,按照一切事物皆对象这个最基本的面向对象的法则来看,类 (class) 本身并不是一个对象,然而原型方式中的构造器 (constructor) 和原型 (prototype) 本身也是其他对象通过原型方式构造出来的对象。

          再次,在类式面向对象语言中,对象的状态 (state) 由对象实例 (instance) 所持有,对象的行为方法 (method) 则由声明该对象的类所持有,并且只有对象的结构和方法能够被继承;而在原型式面向对象语言中,对象的行为、状态都属于对象本身,并且能够一起被继承(参考资源),这也更贴近客观实际。

          最后,类式面向对象语言比如 Java,为了弥补无法使用面向过程语言中全局函数和变量的不便,允许在类中声明静态 (static) 属性和静态方法。而实际上,客观世界不存在所谓静态概念,因为一切事物皆对象!而在原型式面向对象语言中,除内建对象 (build-in object) 外,不允许全局对象、方法或者属性的存在,也没有静态概念。所有语言元素 (primitive) 必须依赖对象存在。但由于函数式语言的特点,语言元素所依赖的对象是随着运行时 (runtime) 上下文 (context) 变化而变化的,具体体现在 this 指针的变化。正是这种特点更贴近 “万物皆有所属,宇宙乃万物生存之根本”的自然观点。

          javascript 中有哪些对象

          描述 语言要素
          启用并返回一个 Automation 对象的引用。 ActiveXObject 对象
          提供对创建任何数据类型的数组的支持。 Array 对象
          创建一个新的 Boolean 值。 Boolean 对象
          提供日期和时间的基本存储和检索。 Date 对象
          存储数据键、项对的对象。 Dictionary 对象
          提供集合中的项的枚举。 Enumerator 对象
          包含在运行 JScript 代码时发生的错误的有关信息。 Error 对象
          提供对计算机文件系统的访问。 FileSystemObject 对象
          创建一个新的函数。 Function 对象
          是一个内部对象,目的是将全局方法集中在一个对象中。 Global 对象
          一个内部对象,提供基本的数学函数和常数。 Math 对象
          表示数值数据类型和提供数值常数的对象。 Number 对象
          提供所有的 JScript 对象的公共功能。 Object 对象
          存储有关正则表达式模式查找的信息。 RegExp 对象
          包含一个正则表达式模式。 正则表达式对象提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串及确定其位置。 String 对象
          提供对 Visual Basic 安全数组的访问。 VBArray 对象

          纯手打,希望能帮到你~~~~

          javascript 中有哪些对象

          描述 语言要素
          启用并返回一个 Automation 对象的引用。 ActiveXObject 对象
          提供对创建任何数据类型的数组的支持。 Array 对象
          创建一个新的 Boolean 值。 Boolean 对象
          提供日期和时间的基本存储和检索。 Date 对象
          存储数据键、项对的对象。 Dictionary 对象
          提供集合中的项的枚举。 Enumerator 对象
          包含在运行 JScript 代码时发生的错误的有关信息。 Error 对象
          提供对计算机文件系统的访问。 FileSystemObject 对象
          创建一个新的函数。 Function 对象
          是一个内部对象,目的是将全局方法集中在一个对象中。 Global 对象
          一个内部对象,提供基本的数学函数和常数。 Math 对象
          表示数值数据类型和提供数值常数的对象。 Number 对象
          提供所有的 JScript 对象的公共功能。 Object 对象
          存储有关正则表达式模式查找的信息。 RegExp 对象
          包含一个正则表达式模式。 正则表达式对象提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串及确定其位置。 String 对象
          提供对 Visual Basic 安全数组的访问。 VBArray 对象

          纯手打,希望能帮到你~~~~

          javascript中怎么做对象的类型判断_基础知识

          最近在翻看John Resig的大作《Pro JavaScript Techniques》,里面讲到了如何做javascript的类型判断的问题。文中介绍了两种方式,一种是使用typeof,另一种是使用constructor。略感遗憾的是作为jquery的作者,他尽然没有介绍jquery使用的类型判断方式。不过没有关系,我在这里给大家一起总结下。

          在这里我首先像大家推荐一个很好用的在线编辑器:http://jsfiddle.net/。他提供了jquery、mootools、prototype和YUI三个主流js框架的各个版本,当你需要编写简单的js测试程序的时候可以直接使用它。省去了打开编辑软件,创建各种类型文件的步骤。编辑代码之后,点击[Run]按钮,一切搞定。

          1.typeof

          typeof是我们在做类型判断时最常用的方法,他的优点就是简单、好记,缺点是不能很好的判断object、null、array、regexp和自定义对象。

          下面是我的测试代码:

          代码如下:

          var str='str';

          var arr=['1','2'];

          var num=1;

          var bool=true;

          var obj={name:'test'};

          var nullObj=null;

          var undefinedObj=undefined;

          var reg=/reg/;

          function fn(){

          alert('this is a function');

          }

          function User(name){

          this.name=name;

          }

          var user=new User('user');

          console.log(typeof str);

          console.log(typeof arr);

          console.log(typeof num);

          console.log(typeof bool);

          console.log(typeof obj);

          console.log(typeof nullObj);

          console.log(typeof undefinedObj);

          console.log(typeof reg);

          console.log(typeof fn);

          console.log(typeof user);

          代码运行结果:

          2.constructor

          现在介绍一种不常使用的方法,对象构造器constructor。他的优点是支持大部分对象类型的判断,特别是对自定义对象的判断;缺点是不能在null和undefined上使用。

          测试代码和之前的差不多,区别就是使用XXX.constructor代替了typeof。

          代码如下:

          var str='str';

          var arr=['1','2'];

          var num=1;

          var bool=true;

          var obj={name:'test'};

          var nullObj=null;

          var undefinedObj=undefined;

          var reg=/reg/;

          function fn(){

          alert('this is a function');

          }

          function User(name){

          this.name=name;

          }

          var user=new User('user');

          console.log(str.constructor);

          console.log(arr.constructor);

          console.log(num.constructor);

          console.log(bool.constructor);

          console.log(obj.constructor);

          console.log(reg.constructor);

          console.log(fn.constructor);

          console.log(user.constructor);

          console.log(nullObj.constructor);

          console.log(undefinedObj.constructor);

          运行结果:

          运行到 console.log(nullObj.constructor); 的时候,浏览器报错:Uncaught TypeError: Cannot read property 'constructor' of null。类似的问题也发生在console.log(undefinedObj.constructor); 上面:Uncaught TypeError: Cannot read property 'constructor' of undefined。

          3.Object.prototype.toString.call()

          最后要介绍的是jquery中使用的方式,Object.prototype.toString.call()。优点是支持绝大多数类型的判断,唯一的缺点是不支持自定义对象的判断。

          测试代码如下:

          代码如下:

          var str='str';

          var arr=['1','2'];

          var num=1;

          var bool=true;

          var obj={name:'test'};

          var nullObj=null;

          var undefinedObj=undefined;

          var reg=/reg/;

          function fn(){

          alert('this is a function');

          }

          function User(name){

          this.name=name;

          }

          var user=new User('user');

          var toString=Object.prototype.toString;

          console.log(toString.call(str));

          console.log(toString.call(arr));

          console.log(toString.call(num));

          console.log(toString.call(bool));

          console.log(toString.call(obj));

          console.log(toString.call(reg));

          console.log(toString.call(fn));

          console.log(toString.call(user));

          console.log(toString.call(nullObj));

          console.log(toString.call(undefinedObj));

          运行结果:

          console.log(toString.call(user)); 的返回结果为:[object Object],不能做进一步判断。

          总结

          javascript中经常使用的对象判断方式包括:typeof、constructor和Object.prototype.toString.call()。其中typeof很好理解,他是JavaScript本身支持的语法。constructor很少使用,但是相信大家通过demo也能看懂他代表的意思。至于Object.prototype.toString.call()可能多少会让人有点费解,他和XXX.toString()有什么区别呢,为什么不能直接使用XXX.toString()呢?

          我们在浏览器中运行下面的代码:查看运行结果:

          null和undefined因为不存在toString()方法,所以会报错,我们就不去管他们了。至于其他对象,通过toString()返回的内容和使用Object.prototype.toString.call()返回的内容差别很大。这是因为Object.prototype.toString()方法被设计用来返回对象类型的。String、Array、Boolean、Regexp、Number和Function都继承自Object,同时也就继承了Object的原型方法toString(),但是他们都对toString()进行了重写。执行xxx.toString()时使用的是重写后的方法,返回的结果自然会和Object.prototype.toString.call()的结果不一致。

          通过上面的例子,大家一定对这三种方式有了更深刻的认识,熟悉他们的优缺点,然后可以根据自己的需要选择合适的方式。推荐使用Object.prototype.toString.call()方法,因为他能解决绝大部分情况的判断,在遇到返回值为[object Object]时,再使用constructor辅助判断,看是否是自定义对象。

          代码如下:

          var str='str';

          var arr=['1','2'];

          var num=1;

          var bool=true;

          var obj={name:'test'};

          var nullObj=null;

          var undefinedObj=undefined;

          var reg=/reg/;

          function fn(){

          alert('this is a function');

          }

          function User(name){

          this.name=name;

          }

          var user=new User('user');

          console.log(str.toString());

          console.log(arr.toString());

          console.log(num.toString());

          console.log(bool.toString());

          console.log(obj.toString());

          console.log(reg.toString());

          console.log(fn.toString());

          console.log(user.toString());

          console.log(nullObj.toString());

          console.log(undefinedObj.toString());

          javascript函数、事件、对象、方法的通俗解释和他们的作用。

          其实我也是自学的js

          一开始也遇到了同样的问题

          别人也给解释了很多,但根本听不懂

          前面两个仁兄回答的非常好,简单明了

          但这是在我明白这些名词以后看,看得非常清晰

          我想,这些解释在我明白以前 是看不懂的

          我来解释一下吧:

          函数:

          js里凡是带有function的都可以叫做函数,函数包括定义函数和执行函数,函数的存在就是为了实现你想干什么,无论你想干什么,都可以先定义一个函数,然后在你想运行的时候运行它。

          事件:

          你可以简单理解为触发函数的事情,比如你想在点击一个按钮时触发一个函数,那么这个点击就是事件,至于js都有什么事件,你可以查一查,每一个事件都有一个名字(比如点击事件就是onclick)

          方法:

          其实方法也是函数,只不过对象里的函数就叫方法了。(下面讲对象)

          对象:

          这个就不太好理解了,我理解他用了N久,直到有一天突然明白了,才发现其实没那么复杂。

          对象你可以简单的理解为一个大仓库,里面有各种资源(各种方法——也就是函数,各种定义了这个仓库的属性——比如这个仓库是干什么用的啊)。好了,现在你有一个满载资源的仓库了,当你想做某些事件的时候,你想到了这个仓库里有你想要的资源,那么你就可以调用这个仓库里的资源了,也就是调用这个对象里的方法了。

          那你可能要问了,我不用对象也能实现我的目的

          其实初学的时候是这样的,但当程序越来越多,越来越复杂的时候,就会用到这些了。

          不明白就追问吧,纯手写的。

          旭新科技网还为您提供以下相关内容希望对您有帮助:

          详解JavaScript基础知识(JSON、Function对象、原型、引用类型)

          1、JSON概念:JavaScript对象表示法(JavaScriptObjectNotation),是一种轻量级的数据交换格式特点:易于程序员编写和查看;易于计算机解析和生成数据结构:Object对象格式 {key:value,key:value}Array数组格式 [value,value]Eg: ...

          javascript中怎么做对象的类型判断_基础知识

          1.typeof typeof是我们在做类型判断时最常用的方法,他的优点就是简单、好记,缺点是不能很好的判断object、null、array、regexp和自定义对象。下面是我的测试代码: 代码如下:var str='str';var arr=['1','2'];va...

          如何理解Javascript中类和对象这两个概念

          对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象。简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。var o = { p: "Hello World"};...

          javascript中的对象包括哪些

          javascript中的对象包括自定义类,函数和一些原生对象。在JavaScript中,通常可以使用构造函数来创建特定类型的对象。诸如Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。 此外,我们也可以创建自定义的构造函数...

          javascript中的对象由哪两个基本元素构成

          javascript中的对象由属性和方法基本元素构成。根据查询相关公开信息显示:JavaScript中的对象是由属性和方法两个基本的元素的构成的,对象的属性是指对象的背景色,长度,名称等。

          javascript 中有哪些对象

          提供对创建任何数据类型的数组的支持。 Array 对象 创建一个新的 Boolean 值。 Boolean 对象 提供日期和时间的基本存储和检索。 Date 对象 存储数据键、项对的对象。 Dictionary 对象 提供集合中的项的枚举。

          js面向对象的几种方式

          一、使用内置对象 JavaScript可用的内置对象可分为两种:1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。我们所说的使用...

          JavaScript教程--从入门到精通(2)

          图 说明: Document write()是文档对象的输出函数 其功能是将括号中的字符或变量值输出到窗口 document close()是将输出关闭 可将&lt;Script&gt; &lt;/Script&gt;标识放入head&gt; &lt;/Head&gt;或&lt;Body&gt; &lt;/Body&gt;之间 将JavaScript标识放置&lt;...

          javascript中什么是 对象 什么是 对象 什么是构造函数 什么是方法呀...

          对象就是东西,js中最基本的东西是内置的object 对象可以有方法,可以有属性 2、构造函数 是创建对象时初始化对象 的函数,就好比对象工厂,用于规定对象的基本属性和方法。3、属性和方法 属性就是对象的特点,比如一张桌子有...

          如何使用JavaScript中的ActiveXObject 对象

          请参见JavaScript 版本信息。应用相关方法 创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:var fso = new ActiveXObject(“Scripting.FileSystemObject”);var f1 = fso.createtext...

          Top