Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203148
  • 博文数量: 73
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 750
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 18:32
文章分类

全部博文(73)

文章存档

2009年(1)

2008年(72)

我的朋友

分类: 系统运维

2008-04-02 10:33:28

  4,转换
  String.length,Boolean(&String&Number).toString(),parseInt(String)
  ,parseFloat(String)
 
alert (parseInt("010"));//8基于8进制
alert (parseInt("010",2));//2
alert (parseInt("010",10));//10
alert (parseInt("0x10"));//16
alert (parseInt("2x10"));//2
alert (parseInt("123blue"));/123
alert (parseInt("blue123"));//NaN
alert (parseInt("0x10",10));//0

  parseFloat不能用除10进制之外的方式来解释浮点数。
    
parseFloat("1235blue");//1234.0
parseFloat("0xA");//NaN
parseFloat("0908");//908.0

  强制的类型转换,Boolean(var),Number(var),String(var)。当参数是至少有一个字符的字符串或者非0数字或对象返回true;若为空串,0,undefined,/null返回false
  Number的强制类型转换类似于parseInt/parseFloat只是她会转换整个串,而不是一部分。
 
  parseFloat("22.3.4.")//22.3
  Number("22.3.4")//NaN
  false->0;true->1;undefined/null->0;"4.4"->4.4;"4.4.4"->NaN;new Object()->NaN;

  区分String(var),toString():
  alert (String(null));//"null"
  null.toString();//error
 
  5,Object类
  属性:
  a,Constructor是对创建对象的函数的引用,对Object类,该指针指向原始的Object()函数。
  b,Prototype,对该对象的对象原型的引用,对所有的类默认返回Object对象 的一个实例。

  方法:
  a,hasOwnProperty (property)判断对象是否具有某特定的属性,必须由字符串指定,如
  object.hasOwnProperty("name");
  b,isPrototypeOf(Object)判断该对象是否为另一对象的原型。
  c,propertyisEnumeralbe(property)判断给定属性是否可以用for。。。in语句。
  d,toString返回对象的字符表示
  e,valueOf()返回最适合该对象的原始值,大体上与toString相同。
  TIP:以上属性和方法都会被其他类覆盖。

  Boolean类,Number类,String类
 
var oFalseObj=new Boolean(false);
alert (typeof true);//boolean
alert (typeof oFalseObj);//object返回的是顶层类型
var bResult=oFalseObj&true;
alert (typeof bResult);
alert(bResult);
var oNumberObj=new Number(99);
alert (typeof oNumberObj);
//可以考虑js中存在原语类型如,number,boolean
alert (typeof 99);//number
alert (oNumberObj.toFixed(2));//99.00
//科学计数的方法表示
alert (oNumberObj.toExponential(1));
//toPrecision()根据最有意义的形式返回数字的预订形式
//或指定形式。
alert (oNumberObj.toPrecision(1));//`e+1
alert (oNumberObj.toPrecision(2));//99

  String类的方法及其属性:
valueOf~toString,charAt(var),charCodeAt(var);
concat(var),indexOf(String),lastIndexOf(String);
slice(Number,arg...)~substring(Number,arg);
toLowerCase(),toUpperCase(),toLocaleLowerCase()
toLocaleUpperCase().
 
var oStr=new String("hello world");
alert (oStr.slice(-3));//rld
alert (oStr.substring(-10));//hello world
alert (oStr.slice(3,-4));//lo w
alert (oStr.substring(3,-4));//hel

  instanceof操作
  
var oStr=new String("hello world");
alert (ostr instanceof String);
#输出true

  6,面向对象的操作方式
 
var o=new Object;
o.name="biaoflying";//为对象添加属性
alert (o.name);
delete o.name;//删除对象的某个属性。
alert (o.hasOwnProperty("name"));//false
 
  3)~表示位操作符。
   
var iNum1=25;
var iNum2=~iNum1;
alert(iNum2);//-26

  4),&&逻辑运算,&/运算
  &&逻辑运算:
  ·若第一个操作数为对象,另一个为Boolean返回该Boolean
  ·若二个操作数均为对象,返回第二个对象
  ·若某个运算数为null/NaN,返回null/NaN
  ·第一个操作数为undefined,发生错误。当undefined作为第二个操作数时,且第一个操作数为false时会返回false;否则发生错误。
 
var obj1=new Object;
var numObj=new Number(33);
var bl1=false,bl2=true;
alert (obj1&&numObj);
alert (numObj&&new Boolean(false));
alert(parseInt("rew32")&&new Boolean(true));
alert(bl1&&hello);
alert(hello&&true);
  ×运算:
  ·某个操作数为NaN返回NaN
  ·Infinity×0->NaN;乘以0以外的为Infinity/-Infinity
  `Infinity*Infinity返回一个Infinity  
  /运算:
  ·某操作数NaN返回NaN
  ·Infinity/Infinity->Infinity
 
  7,!==表示在无需类型转换的情况下不相等。如:
 
var v1="33",num=33;
alert(v1!=num);//false
alert(v1==num);//true
alert(v1!==num);//true

  8.方法的覆盖。

var v1="33",num=33;
function doAdd(iNum){
    alert (iNum+200);
}
function doAdd(iNum){
    alert (iNum+20);
}
doAdd(v1);
doAdd(num)
#输出:3320,53.第二个方法覆盖了第一个方法。可以使用arguments对象避开该限制。

  arguments对象:
 
function sayHi(){
    if(arguments[0]=="bye") return;
    else
        alert(arguments[0]);
}
function how_many_args(){
    alert(arguments.length);
}
sayHi("biaoflying");
how_many_args(22,33,44,"hello");
#biaoflying
#4
 
  javascript不会再调用函数时验证参数的个数是否与定义时一致:
 
function doAdd(){
    if(arguments.length==1) alert(arguments[0]);
    else{
        var sum=0;
        for(var v=0;v            sum+=arguments[v];
            //alert(sum);
        }
        alert(sum);
    }
}
doAdd(33,44,66);
#143.

  9,Function类
  任何一个函数都是一个Function对象,Function对象可以表示定义的任何函数。
  var doAdd=new Function("iNum","alert(iNum+10);");
  doAdd(50);
  函数名称可以看成一个指针。
  var doAlsoAdd=doAdd;
  doAlsoAdd(10);
  另外函数可以说作为参数传递给另一个函数:
  function callAnotherFunc(fn,args){
    fn(args);
  }
  callAnotherFunc(doAdd,100);
  函数对象具有length属性,和toString()方法。
  doAdd.length;doAdd.toString;
 
var doAdd=new Function("iNum","alert(iNum+10);");
doAdd(50);
var doAlsoAdd=doAdd;
  doAlsoAdd(10);
function callAnotherFunc(fn,args){
    fn(args);
}
callAnotherFunc(doAdd,100);
alert(doAdd.length);
alert(doAdd.toString());

阅读(905) | 评论(0) | 转发(0) |
0

上一篇:。。。。。。

下一篇:javascript点滴

给主人留下些什么吧!~~