javascrip学习 一
时间:2008-04-02 来源:biaoflying
4,转换
String.length,Boolean(&String&Number).toString(),parseInt(String)
,parseFloat(String)
parseFloat不能用除10进制之外的方式来解释浮点数。
强制的类型转换,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类
String类的方法及其属性:
instanceof操作
6,面向对象的操作方式
3)~表示位操作符。
4),&&逻辑运算,&/运算
&&逻辑运算:
·若第一个操作数为对象,另一个为Boolean返回该Boolean
·若二个操作数均为对象,返回第二个对象
·若某个运算数为null/NaN,返回null/NaN
·第一个操作数为undefined,发生错误。当undefined作为第二个操作数时,且第一个操作数为false时会返回false;否则发生错误。
×运算:
·某个操作数为NaN返回NaN
·Infinity×0->NaN;乘以0以外的为Infinity/-Infinity
`Infinity*Infinity返回一个Infinity
/运算:
·某操作数NaN返回NaN
·Infinity/Infinity->Infinity
7,!==表示在无需类型转换的情况下不相等。如:
8.方法的覆盖。
arguments对象:
javascript不会再调用函数时验证参数的个数是否与定义时一致:
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;
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<arguments.length;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()); |
相关阅读 更多 +