1.1实现可变参数
<scripttype="text/javascript">
//函数的可变参数介绍
function testParams()
{
var params = "";
for(var i=0; i<arguments.length;i++)
params+=""+arguments[i];
alert(params);
}
testParams("asd","zxc","qwe");
testParams(1,23 , "abc");
</script>
1.2创建动态函数
格式:var varName = new Function(argument1,... , lastArgument);
说明:所有的参数必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码
<scripttype="text/javascript">
var add = new Function("x","y","var sum; sum=x+y; returnsum");
alert(add(2,3));
/*(上面的动态函数的作用相当于下面的函数)
function add(x,y)
{
var sum;
sum = x+y;
return sum;
}
*/
</script>
1.3一些系统函数
(1)encodeURI方法
(2)decodeURI方法
(3)parseInt方法
(4)parseFloat
(5)isNaN
(6)escape 返回一个字符串进行编码后的结果字符串
(7)Unescape
(8)Eval 将其中的字符串作为一个javascript表达式执行
1语法:var objinstance = new ObjectName(参数列表);
只要定义了一个对象的构造函数,就等于定义了一个对象。
2构造方法与this关键字
为一个对象实例新增加的属性和方法,不会增加到同一个对象所产生的其他对象实例上
3所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加的属相和方法会被增加到每个对象实例上。
4 对象实例是用new关键字创建的,在构造函数中不要有返回结果的return语句
5 this关键字代表某个成员方法执行时,引用该方法的当前对象实例。所以this关键字一般只在用作对象方法的函数中出现。
<scripttype="text/javascript">
//构造函数
function Person(name, age)
{
alert(name + age);
this.name = name;//成员变量
this.age = age;
this.say = say;
}
function say()
{
document.write(this.name+":"+this.age);
}
var person1 = new Person("张三", 19);
person1.say();
var person2 = new Person("李四", 30);
person2.say();
</script>
6在函数中修改参数值的问题
注意下面两个程序的区别:
<scripttype="text/javascript">
function change(x)
{
x=5;//此处的x为局部变量
}
var x= 1;
change(x);
alert(x);//次数的x值为1
</script>
<scripttype="text/javascript">
//构造函数
function Person(name, age)
{
this.name = name;//成员变量
this.age = age;
}
function changeValue(p)
{
p.name = "修改了";
}
var person1 = new Person("张三", 19);
alert(person1.name);//此处值为“张三”
changeValue(person1);
alert(person1.name);//此处值为“修改了”
</script>
动态对象:用new创建
静态对象:直接使用 “对象名.成员” 的格式来访问。
Object
String
Math
Object对象:提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数
<scripttype="text/javascript">
function getAttributeValue(attr)
{
alert(person[attr]);
}
var person = new Object();
person.name= "wang";
getAttributeValue("name");
</script>
String对象
Lingth属性
Anchor,big, bold, fontscolor, link 等方法
charAt方法 charCodeAt 方法 indexOf 方法 lastIndexOf方法 match方法 search方法
Replace 方法 split方法 slice方法 substr方法 substring方法 toLowerCase方法
Math对象
属性:E ,LN10,LN2 , PI,SQRT1,SQRT2
方法:abs, sin,cos , asin, acos, random,
Date对象
方法:parse,toGMTString,getYeat, getMonth, getDate, getDay, getHours, getTime,
对象专用语句:
With语句
For 。。。In语句
With(对象名)
{
执行语句块
}
Eg:
<scripttype="text/javascript">
var dateNow = new Date();
with(dateNow)
{
var strDate = "" + getFullYear();
strDate += getMonth();
strDate += getDay();
}
alert(strDate);
</script>
For( 变量 in对象)
{
执行语句
}
<scripttype="text/javascript">
function Person()
{
this.name = "hah";
this.age = 13;
this.height = 124;
}
var person = new Person();
var prop;
for(prop in person)
{
alert(prop);
}
</script>
1数组列表
用于表示一组数据的集合,如var arr = ["zas", 234 , 3.4 , "li"]';
<scripttype="text/javascript">
var arr = [111,["hah"+1234, 1324,, 2.3,"liu"],[1,"ad",1.2]];
for(var i = 0; i<arr.length;i++)
{
if(arr[i].length){
for(var j=0;j<arr[i].length;j++)
{
alert(arr[i][j]);
}
}else{
alert(arr[i]);
}
}
</script>
2用对象的方式实现数组
<scripttype="text/javascript">
function myArray()
{
this.length = arguments.length;
for(var i=0;i<this.length;i++)
{
this[i] = arguments[i];
}
}
var arr = new myArray(1,3.3,"asf");
for(var i=0;i<arr.length;i++)
{
alert(arr[i]);
}
</script>
3Array对象
三种构造函数:
array();
Array(4);
Array(3.5 , "in" , 3);
屏蔽鼠标右键
<script type="text/javascript"> function hideContextmenu() { return false; } document.oncontextmenu = hideContextmenu; </script>