javascript中数据类型、函数的创建与调用以及对象的定义总结

javascript是一种基于客户端浏览器的,基于对象(而不是面向对象)、事件驱动式的脚本语言。它的主要功能为:动态修改HTML页面内容,包括创建、删除HTML页面元素修改HTML页面元素的内容、外观、位置、大小。
下面是关于javascript中数据类型、函数的创建、调用和对象的定义的讨论。

数据类型

不同于JAVA、C++等编程语言,JavaScript是一种弱类型脚本语言,声明变量时无须指定变量的数据类型,JavaScript的数据类型是解释时动态决定的。并且同一变量可以在不同时间赋不同类型的值
(1)数值类型:整型、浮点型
特殊值:Infinity(正无穷大)、-Infinity(负无穷大)、NaN(not a number,Infinity和-Infinity之间运算以及除数为0时得NaN;isNaN函数用来判断某个变量是否为NaN)。
(2)布尔型:true/false
(3)字符串类型。(JavaScript没有字符数据类型,单个字符即为字符串类型)
(4)undefined类型:已经创建但没有初始化的变量。
undefined还表示某个变量不存在、对象的属性不存在。
(5)null类型:变量值为空(有值,值为null)。

函数

定义函数的三种方式

前面提过JavaScript是基于对象的脚本语言,JavaScript的函数可以作为一个类使用,并且该函数是该类唯一地构造器。与此同时,函数本身也是一个对象,函数本身是Function实例
(1)定义命名函数(普通函数形式,但是无参数类型与返回值类型)

function functionname(参数)
{
执行体;
}

示例:
test(‘函数测试’);

function test(content)
{
alert(content);
}
test('函数测试');

另外,函数还可以作为类的构造器,当使用new+函数名语句时,便会创建类实例,构造器即为函数本身。
示例:

function Student(name,age)
{
this.name=name;
this.age=age;
}
var s=new Student('Liming',18);
alert(s.name);
alert(s.age);

(2)定义匿名函数(推荐)
function(参数)
{
执行体;
};
(注意最后的分号不能丢)
当使用这种格式定义函数,实际上就是定义了一个函数对象(Function类实例),所以该格式函数应赋值给另一个变量使用
实例:

var f=function(name)
{
document.writeln('匿名函数\<br />');
document.writeln('你好'+name);
};
f('Liming');

(3)使用Function类匿名函数(不推荐)
实例:

var f=new Function('name',"document.writeln('Function定义的函数\<br>');"+"document.writeln('你好'+name);");
f('Liming');

函数执行体为函数参数列表的最后一个字符串参数。

调用函数的三种方式

(1)直接调用函数
对应创建函数的第一种方式

function functionname(参数)
{
执行体;
}

(2)以call方法调用函数
使用于调用函数时需要动态地传入一个函数引用,即某个函数A作为一个函数B的参数,函数A是动态的(不是确定的函数语句),而在函数B中调用函数A。
call语句语法格式:

函数引用.call(调用者,参数1,参数2)

示例:

var f=function(name,fn)
{
this.name=name;
fn.call(null);
}
f('Liming',function(){alert(this.name);});

在这里插入图片描述
调用者为null,则alert显示原函数的name属性。如果null改为其它含有name属性的对象,那么alert显示调用对象的name属性值。

(3)使用apply()方法调用函数
apply函数与call函数功能基本相似,区别为

  • 通过call()调用函数时,必须在括号中详细地列出每个参数。
  • 通过apply()动态地调用函数时,需要以数组形式一次性传入所有调用参数。

定义对象的三种语法

JavaScript对象是一种特殊的关联数组,创建对象可以不创建类。
(1)使用new 关键字调用构造器创建对象
最接近JAVA等面向对象的创建对象方法,new关键字后的函数名即为构造器方法。
示例:

function Student(name,age)
{
this.name=name;
this.age=age;
}
var s=new Student('Liming',18);
alert(s.name);
alert(s.age);

(2)使用Object类创建对象
因为JavaScript也是所有的对象都是Object类的子类,所以可以通过new关键字创建一个Object的空对象,又由于JavaScript可以动态地添加对象的属性和方法,所以也可以达到创建对象的目的。
示例:

var obj=new Object();
obj.name='Liming';
obj.age=18;
alert(s.name);
alert(s.age);

(3)使用JSON语法创建对象
JSON格式为键值对**(KEY:VALUE)**
object =
{
属性名:属性值,
属性名:属性值,
属性名:属性值
}
属性值多种多样,可以是基本数据类型,即为普通对象的属性,也可以是函数,即为普通对象的方法,甚至可以是另一个JSON创建的对象。
另外,JSON语句还可以用来创建数组,如:

var a=['Liming','Lihua']

创建类

JavaScript是基于对象的脚本语言,其中就表现在在定义函数的同时,也得到了一个与函数同名的类。

function Student(name,age)
{
this.name=name;
this.age=age;
}
例如函数Student即为一个类(构造器),函数执行体即为初始化。

类继承

JavaScript并没有提供真正的继承,实际上是一种伪继承。
通过prototype属性,为类动态增加方法或属性
prototype属性是一个Object独享,将JavaScript类的prototype设为父类实例,可实现JavaScript语言的继承
示例:

	function Person(name,age)
{
this.name=name;
this.age=age;
this.info=function()
{
	alert('info method!');
}
}
	function Student(grade)
	{
		this.grade=grade;
	}
	Student.prototype=new Person("未命名",0);

此时的Student类就相当于继承了Person类。

猜你喜欢

转载自blog.csdn.net/Jonsnow1457/article/details/89363442