欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javascript第五章

程序员文章站 2022-07-12 17:50:36
...
//定义函数
//1 function语句定义函数
function mySum(param1,param2)
{
}
//2 Function()构造函数定义函数
var mySum = new Function(param1,param2,body) //Function构造函数 ,最后一个作为函数体
{
}
var mySum=new Function("x","y","var z=x+y;return z;")
//3 在表达式中定义函数
var mySum = function(param1,param2){body};
var mySum = function(x,y){return x+y;};
var mySum = function 临时函数表(param1,param2){body};
var mySum = function ftemp(x){if(x<1) return 1;else document.write(x);return ftemp(x-1);}; 函数递归

//定义对象
var myobject = new Object();
myobject.a //对象的属性
myobject.b

//定义数组
var arr = new Array(3); //3个元素

//判断参数类型
typeof(param)

//函数的参数 arguments对象 数组
arguments.length //时间传递的参数个数
arguments[0] //取第一个参数
//查看全部参数
for(i=0;i<arguments.length;i++)
{
document.write(i+':'+arguments[i]+'<br>');
}

//arguments的callee属性是调用改执行函数的函数名
function myLink(x)
{
if(x%2 == 0)
{
document.write(x+"<br>");
}
if(x>1)
{
return arguments.callee(x-1);
}
}

//函数的length属性,定义的函数参数个数 和arguments的length属性不同
myLink.length

function myLink(width,height)
{
this.width = width;
this.height = height;
}
var pen = new myLink(20,30); //new调用构造函数来定义对象 这里调用myLink来定义对象,拥有myLink中定义的所有属性
alert(pen.width);
alert(pen.height);

prototype //函数属性 为引用对象添加属性
myLink.prototype.name='xxx';

caller //函数属性 在顶层代码或html事件中调用返回null 在函数中调用返回此函数function的引用
function myLink()
{
alert(myLink.caller);
}
myLink(); //返回null
function pen()
{
myLink();
}
pen(); //返回整个function pen

//自定义属性 函数可以保存自己的属性
function myLink()
{
alert(myLink.counter++);
}
myLink.counter=0;
for(i=0;i<4;i++)
{
myLink();
}

call() //函数方法
function myLink()
{
var arrLength=arguments.length;
alert(arrLength);
}
var myObject=new Object();
myLink.call(myObject,1,2,3,5,6); // ==myLink(1,2,3,5,6)
/*类似于 myObject.temp=myLink();
* myObject.temp(1,2,3,5,6);
*/ delete myObject.temp;

apply() //函数方法 类似于call() 但是把数组放在对象之后
myLink.apply(myObject,[1,2,3,5,6]);
//另一个方法是放在 另一个方法中通过arguments对象来传递参数
function pen()
{
myLink.apply(myObject,arguments);
}
pen(1,2,3,5,6,7);

escape //系统函数 将非文字 数字转成ASCII码值
var str='fdsf43242#@!#@!%#%43gregr7876)([email protected]!~~';
document.write(escape(str));

unescape //系统函数 escape解码

eval //系统函数 求值

isNaN //系统函数 非数字变量 返回false说明是数字

parseInt //系统函数 其它进制转成十进制

parseFloat //系统函数 字符串数据转成浮点数据
var str = '3.14159';
var z = str + 6; //3.141596
var x = parseFloat(str) + 6; //9.14159