JavaScript相关知识

1.javascript内置的数据类型

undefined : 未定义
number: 数字
boolean: 布尔值
string: 字符串
function: 函数
object: 对象
2. 一些关键字和方法的使用
1)this关键字用在两种地方:
- 在构造器函数中,指代新创建的对象实例
- 在对象的方法被调用时,指代调用该方法的对象实例
如果一个函数被作为普通函数(而不是对象方法)调用,那么在函数中的this关键字将指向window对象。与此相同的,如果this关键字不在任何函数中,那么他也指向window对象。

2)使用call()/apply()方法时,传入一个对象实例来指定对象的上下文环境中所出现的this关键字的引用(注:当传入参数为2个参数时候,该俩个函数的作用是对象间的复制)

 

function foo() {
// 下面的this指代调用该方法的对象实例
if (this===window) {
document.write('call a function.', '<BR>');

}else {

document.write('call a method, by object: ', this.name, '<BR>');

}
}

function MyObject(name) {
// 下面的this指代new关键字新创建实例
this.name = name;
this.foo = foo;
}

var obj1 = new MyObject('obj1');
var obj2 = new MyObject('obj2');

// 测试1: 作为函数调用
foo();

// 测试2: 作为对象方法的调用
obj1.foo();
obj2.foo();

// 测试3: 将函数作为“指定对象的”方法调用
foo.call(obj1);
foo.apply(obj2);

3).instanceof关键字来检测实例的类型

4) null是关键字,是对象(空对象, 没有任何属性和方法);undefined是Global对象的一个属性,undefined是undefined类;通过typeof()来判断数据类型.

document.writeln(typeof null);
document.writeln(typeof undefined);

5)NaN: 算术表达式的运算结果不是数字,则返回NaN值,可以通过isNaN()方法来判断返回的是不是NaN值.

6)function有俩个函数:
callee 属性来得到正在执行的函数对象的引用。
caller 属性,指向正在调用当前函数的父函数对象的引用。

//---------------------------------------------------------
// 调用栈的遍历
//---------------------------------------------------------
function foo1(v1, v2) {
foo2(v1 * 100);
}

function foo2(v1) {
foo3(v1 * 200);
}

function foo3(v1) {
var foo = arguments.callee;
while (foo && (foo != window)) {
document.writeln('调用参数:<br>', '---------------<br>');

var args = foo.arguments, argn = args.length;
for (var i=0; i<argn; i++) {
document.writeln('args[', i, ']: ', args[i], '<br>');
}
document.writeln('<br>');

// 上一级
foo = foo.caller;
}
}

// 运行测试
foo1(1, 2);

3.java面向对象支持

1)javaScript中对象的声明和实例的创建

JavaScript中对象的类型声明的形式代码
function 对象名(参数表) {
this.属性 = 初始值;

this.方法 = function(方法参数表) {
// 方法实现代码
}
}
创建实例的形式代码
var 实例变量名 = new 对象名(参数表);

2)通过原型(prototype)来实现类的继承和动态扩展

---------------------------------------------------------------------------------------------------------

function A(){}
A.prototype=new Object();
Object对象是A的一个原型,这样就相当于了把Object对象的属性和方法复制到了A上,这也就是javascript实现继承的方式。

----------------------------------------------------------------------------------------------------------
function  Person(nameArg,genderArg,yearOfBirthArg,siteArg,privacyArg){

//公有属性
 this.name =  nameArg;
 this.gender =  genderArg;
 this.yearOfBirth =  yearOfBirthArg;
 this.site =  siteArg;

//私有属性,只有函数内部才能访问
 var privacy =  privacyArg;
 //私有方法,只能在内部访问
 function  showPriveMethod(){
 
 };
 //公有方法
 this.showPrivacy =  function(){
 alert('rrrrrr');
 };

 //this.showPrivacy:function(){alert('rrrrrr');};
}
//原型方法
Person.prototype = {
//公有方法
 info:function(){alert("infor")},
 func:function(){alert("func")}
}
//类方法
Person.Run=function(){alert("我是类方法")};

var nahao = new  Person('Top css','男',1989,'www.javava.org','private');

document.writeln("====="+nahao.name);
nahao.showPrivacy();
Person.Run();

 

4.相关网站:

http://www.qefqei.com/javascript/Object
http://www.w3school.com.cn/js/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值