JS⾃定义函数⽅法
JS ⾃定义函数/⽅法
函数简述及作⽤
1. 如果代码需要被重复的利⽤,那么为了统⼀编写使⽤,可以将其封装在⼀个函数/⽅法中;
2. 作⽤:增强代码的复⽤性;
函数的格式
function⽅法名(参数列表)
{
⽅法体
}
注意事项:
js函数定义⼀定要⽤function ,且⼀定是⼩写;
js函数⽆需定义返回值类型,直接在function之后书写即可;
JS定义函数中参数列表中⽆需使⽤var关键字,否则报错;
js函数体重,return可以不写,也可以return具体值,或者近近些return也可以;
函数调⽤执⾏完毕⼀定有返回值,返回值的类型根据return来决定,函数中若没有返回具体值,则默认返回undefined.
举例:
function getSum(a,b)//Sum:z综合;
{
return a+b;
}
js中不存在函数重载,如果函数同名,只有⽅法相互覆盖,最后定义的函数覆盖之前的定义
因为js不存在函数重载,所以js中仅根据⽅法名来调⽤函数,即便实参与函数的形参不匹配,也不会影响正常使⽤;
如果形参没有赋值,那么默认传⼊为undefined
例如:
<script>
function getNum(a,b)//不需要var
{
return a+b;
}
function getNum(a,b,c)
{
return a+b+c;
}
alert(getNum(1,2));
//得出结果为NaN,因为没有第三个参数值的出现,所以a+b+c没有正确的值;
</script>
⾃定义对象
创建
第⼀种创建
function 对象名()
函数体
function Person()//定义/声明了⼀个对象
sort函数 js
{
//此处this⼀定要写;
this.name;
//this.name="张三";
this.age;
}
var p=new Person();//创建⼀个person对象;
alert(p.name);
alert(p.age);
为属性赋值:
/
/为属性赋值:
function Person(n,a)//定义/声明了⼀个对象
{
//此处this⼀定要写;
this.name=n;
//this.name="张三";
this.age=a;
}
var p=new Person("张三",16);//创建⼀个person对象;
//此处既然可以⽤构造函数来赋值,⽽且没有private和public之分,就可以直接在创建对象之后调⽤属性来进⾏赋值; alert(p.name);
alert(p.age);
属性定义⽅式:
1. this关键之,在对象声明阶段,定义⼀个属性
2. 创建对象之后,适⽤对象.属性 ⽅式,动态定义属性
例如:
function Person()//定义/声明了⼀个对象
{
//此处this⼀定要写;
this.name;
//this.name="张三";
this.age;
}
var p=new Person();//创建⼀个person对象;
p.sex="男";
alert(p.name);
alert(p.age);
alert(p.sex());//输出"男";
第⼆种创建
格式:var 对象名={属性名1:“属性值”,属性名2:“属性值”-----------};
var person={
name:"⼩李",age:13
};
alert(person.age);
alert(person.name);
//可以在之后重新创建⼀个属性
//可以在之后将属性值更改;
注意:
该⽅式直接可以创建出实例对象,⽆需构建函数,⽆需再new创建实例对象,直接使⽤即可;
此处⼀定要⽤":“⽽不能⽤”=";
typeof(parameter)判断对象类型
1. number: 数字型(NaN也是数字型)
2. string: 字符串型
3. boolean: 布尔型
4. function: 函数型
5. object: 对象型
6. undefined: ⼀个没有定义的变量,函数,或者undefined
parseInt和parseFloat数制转换
parseInt(string,num):将字符串转变为整数,string表⽰需要转换的字符串,num表⽰转换的进制------其实,就是在解析中将num进制的string字符串转化为10进制字数字(这是个⼈实践所得的猜测,但是书中所写与个⼈实践不相同,相⽐来说,我更相信⾃⼰实践所得,当然,可能会出现错误,如果⽇后发现此处错误,我会更改;)
在进⾏转换时,是从字符串第⼀个数字开始连续的所有数字的组合,如果其中有⼀个不是数字,那么直接转变前边的字符串,后⾯的省略,如果字符串的第⼀个字符就不是数字,那么直接返回NaN;
parseFloat(string,num)与parseInt(string,num)类似记住,在JS中参数少于原给定的参数,⼀般不会报错,当然,必要参数除外
isFinite(parameter)与isNaN(parameter)
⽤于检查其参数是否为⽆穷⼤, 也可以理解为是否为⼀个有限数值.
如果参数是NaN,⽆穷⼤,则返回false,其他返回true--------finite有限的,函数中⽂可以理解为是否是有限的;
与isNaN()正好相反
Array对象
创建
var arry1=new Array();//创建⼀个空数组
var arry2=new Array(size)//创建⼀个指定数组长度的数组,每个元素都是undefined;
var arr3 =new Array(e1,e2……)//创建⼀个附有初始值的数组,初始值为e1,e2……
var arr4=[e1,e2……]//创建含有e1……的数组,此处⼀定要注意,这⾥和C++和java有些不⼀样.若arr4=[10],不是⼀共有⼗个空间,⽽是只有⼀个元素为10,此处是个坑;
属性
length:返回数组长度
pop:删除数组中的最后⼀个元素并返回该元素值
reverse:翻转元素
join(separator):返回字符串,这个字符串将数组的每⼀个元素都连接在⼀起,⽤separator来隔开
push(e1,e2……):将⼀个或多个元素添加到数组结尾,返回数组的长度;
sort():对数组元素排序,排序结果是⼀个位⼀个位来排序的,就像字符串的字典序排序差不多;需要⾃写个函数来达到我们想要实现的从⼩到⼤或者从⼤到⼩的排序;
<script>
function compare(a,b)
{return a-b;}
var a=[];
a.push(301);
a.push(20);
a.push(4,3,233);
a.sort(compare);//如果想要实现从⼩到⼤,⼀定要重写,否则会出现错误;
alert(a.join());
</script>
特性
js可看作java中的ArrayList集合
数组的长度可以⾃动修改
数组中没有类型限制,可以存放任意类型,⽐如var a=[1,2,true,“a”];
BOM对象
BOM (Browser Object Model)浏览器对象模型
浏览器:IE,⽕狐,⾕歌等
作⽤:⽤来执⾏浏览器的相关操作.(例如:浏览器的地址,弹出消息等 )
window对象是JS的内置对象,使⽤Window对象调⽤⽅法是,可以省略Window不写.
alert()
警告窗:⽤来弹出警告消息.
confirm()
确认框:⽤于告知⽤户信息,并收集⽤户的选择
//有返回值,boolean类型
//点击确定–>true
//点击取消–>false
alert(confirm("你好"))
定时器
循环定时器-setInterval()
//interval—间歇,休息时间,时间间隔
//setInterval()----设置间隔时间
循环定时器:调⽤⼀次就会创建并且循环执⾏⼀个定时器
格式: setInterval(调⽤⽅法(此处为string字符串),毫秒值);例如:setInterval("run1()",2000);
clearInterval(循环定时器的ID);
setInterval的返回值就是id;****
function run1()
{
alert("jiangming");
}
run1();
var id=setInterval("run1()",2000);
clearInterval(id);//此处可以取消循环定时器
⼀次性定时器
格式:
setTimeout(调⽤⽅法,毫秒值)
//timeout----超时,暂停,
function run1()
{
alert("jiangming");
}
var id=setTimeout("run1()",2000);//只会执⾏⼀次
clearTimeout(⼀次性定时器的ID);
location对象
获取URL地址:
var p= location.href;
//href-----链接,超链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。