javascript高级程序设计 读书 随笔


<html>
<HEAD>
<SCRIPT LANGUAGE= "JavaScript">
function log(argtext){
document.writeln(argtext);
}

log('<pre>');
log('1 instanceof Number :'+(1 instanceof Number));
log('1.0.constructor :'+((1.0.constructor) == Number));
var temp="a string for test";
//下面这句返回"string"
log( typeof temp);
//下面这句返回"false"
log(temp instanceof String);

//下面这句就回返"true"了
var temp2=new String("another new string");
log(temp2 instanceof String);
//constructor属性是很好的替代品
//下面这句返回"true"
log(temp.constructor==String);
log('****************************');
log("Boolean 的陷阱:");
var bObject = new Boolean(false);
log('var bObject = new Boolean(false);');
log('true && bObject=' + (true && bObject));
log('bObject && true=' + (bObject && true));
log('bObject.prototype='+bObject.prototype);
log('bObject.constructor='+bObject.constructor);
log('typeof bObject='+typeof bObject);
log('bObject instanceof Boolean='+(bObject instanceof Boolean));
log('bObject instanceof Object='+(bObject instanceof Object));
log('****************************');

var s=1897.005;
log('var s=1897.005;');
log('s.toFixed(2)='+s.toFixed(2));
log('s.toExponential(5)='+s.toExponential(5));
log('s.toPrecision(5)='+s.toPrecision(5));
log('1.constructor 会出错,但1.0.constructor或1..constructor就可以执行,所以说javascript还是挺笨的,一定要把1后面第一个小数点后的东西拼成数值后才能当对象用.\n 1.0.constructor='+(1.0.constructor));
log('****************************');

var text="看a";
log('text="看a"');
log('text.length = ' + text.length);
log('text.charAt(0) = ' + text.charAt(0));
log('text.charCodeAt(0).toString(16) = ' + text.charCodeAt(0).toString(16));

log('****************************');
log("void运算符,使语句返回undefined");
log("void(function(){return 1}()) "+void(function(){return 1}()) );
log('没有返回值的函数真正返回的都是undefined');

log('****************************');
log('"23">3 =' + ('23'>3));
log('"a">3 =' + ('a'>3));
log('"a"<=3 =' +( 'a'<=3));
log('任何包含NaN的关系运算都要返回false');
log('****************************');
log('判断两个变量是否相等是程序设计中非常重要的运算。\n在处理原始值时,这种运算相当简单,但涉及对象,任务就稍有点复杂。\nECMAScript提供了两套运算符处理这个问题,等号和非等号用于处理原始值,全等号和非全等号用于处理对象。')
log('全等号和非全等号进行比较时,不进行任何类型转换');
log('只有字符串和数值相加时,才将数值转换为字符串,其他运算符中除了全等"===",进行字符串和数字的运算时,都是将字符串转为数字');

log('****************************');
log('对象冒充继承 和 原型链继承');
function ClassA(){
this.color='red';
}
ClassA.prototype.sayName=function(){
log("ClassA");
}
function ClassB(){
this.sayColor=function(){log(this.constructor);}
}

ClassB.prototype=new ClassA();
ClassB.prototype.sayName=function(){
log("ClassB");
}
ClassB.prototype.color='bbbbbb';
var b=new ClassB();
log(ClassB.prototype);
b.sayName();
log(ClassB.prototype.color);
b.color='bbbb';
ClassB.prototype.color='bbbbbb';
b.sayColor();

log(ClassB.prototype.color);

function ClassC(){
ClassA.call(this,arguments);
}
var c=new ClassC();
log(c.color);
log('</pre>');
</SCRIPT>
</HEAD>
<BODY>
13:33 2008-10-7
</BODY>
</HTML>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值