JS笔记1|函数与事件

这篇博客深入探讨了JavaScript中的函数,包括函数的声明(如普通函数、匿名函数、构造函数和递归函数)、调用方式(简单调用、事件响应和链接调用)、函数类型(普通函数、匿名函数、闭包和内置函数),以及函数的属性(length和prototype)和方法(apply、call、bind)。此外,还介绍了JS事件处理器的概念,如何通过函数和代码响应事件。
摘要由CSDN通过智能技术生成

JavaScript函数声明与调用

1、函数的声明

1.普通函数的声明

function 函数名([参数1,参数2,]){
语句
[return 表达式]
}

2.匿名函数的声明

var 变量名=function(参数1,参数2,……){
函数体
};

3.构造函数的声明

var 变量名=new Function("参数1","参数2",……"函数体");

4.递归函数的声明

function 函数名(参数1){
函数名(参数2);
}

2、函数的调用

1、简单函数调用

2、事件响应中调用函数

3、链接调用函数

3、函数的类型

1 普通函数

1.普通函数

(1)语法格式。

function ShowName(name){
alert(name);
}

(2)JavaScript中同名函数的覆盖。

var nl = 1;
function add(valuel){
return n1+1;
}
alert(add(n1));//调用的是下面的函数,输出:3
function add(valuel,value2){
return value1 + 2;
}
alert(add(n1));//输出:3

(3)arguments对象。

function showNames(name){
alert(name);//张三
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);//张三、李四、王五
}
showNames('张三','李四','王五');

(4)函数的默认返回值。

function showMsg(){
}
alert(showMsg());//输出:undefined

2 匿名函数

1、变量匿名函数

var anonymousNormal=function(p1,p2){
alert(p1+p2);
}
anonymousNormal(3,6);//输出9

2、无名称匿名函数

(function(p1){
alert(p1);
})(1);

3 闭包函数(难)

4 内置函数

<script language="javascript">
function SortNumber(obj,func){
if( !(obj instanceof Array) ||!(func instanceof Function)){
var e=new Error();
e.number=100000;
e.message="参数无效";
throw e;
for(n in obj){
for(m in obj){
if(func(obj[n],obj[m])){
var tmp = obj[n];
obj[n]=obj[m];
obj[m]=tmp;
}
}
}
return obj;
}
function greatThan(argl,arg2){
return argl > arg2;
}
try{
var numAry = new Array(5,8,6,32,1,45,7,25);
document.write("<li>排序前:"+numAry);
SortNumber(numAry,greatThan)
document.write("<li>排序后:"+numAry);
}catch(e){
alert(e.number+":"+e.message);
}
</script>
<script language=javascrpit>
/*
parselnt()函数
*/
var num1= " 123abe "
var num2="abe123"
document.write("(1)使用parselnt()函数:<br>");
document.write("123abe转化结果为:"+pamelnt(numl)+"<br>");
document.write("abe123转化结果为:"+parselnt(num2)+"<br><br>");
/*
parseFloat()函数
*/
var num3="123.456789abe"
document.write("(2)使用parseFloat()函数:<br>");
document.write("123.456789abc转化结果为:"+panseFloat(num3)+"<br><br>");
/*
isNaN()函数
*/
document.write("(3)使用isNaN()函数:<br>");
document.write("123.456789abc转化后是否为NaN:"+isNaN(parseFloat(num3))+"<br>");document.write("abc123转化结果后是否为NaN:"+isNaN(parselnt(num2))+"<br><br>");
/*
isFinite()函数
*/
document.write("(4)使用isFinite()函数<br>");
document.write("1除以0的结果是否为无穷大:"+isFinite(1/0)+"<br><br>");
/*
encodeURI()函数
*/
document.write("(5)使用encodeURI()函数<br>");
document.write("转化为网络资源地址为:"+encodeURI("http://127.0.0.1/save.html?name=测试")+"<br><br>");
/*
decodeURI()函数
*/
document.write("(6)使用decodeURI()函数<br>");
document.write("转化网络资源地址的字符串为:"+decodeURI(encodeURI("http://127.0.0.1/save.html?name=测试”))+"<br><br>");
</script

4、函数属性

1、length。 期望接受的参数的个数

2、prototype。 一个属性指向一个对象的引用

5、函数方法

1、apply() call()

2、bind()

3、toString() toLocaleString() valueOf ()

<script language=javascript>
function sum(num1,num2){
return num1 + num2;
}
function callSum(num1,num2){
retum sum.call(this,num1,num2);//明确传入每一个参数
}
function callSuml(num1,num2){
return sum.apply(this,arguments);//传入arguments对象
}
function callSum2(num1,num2){
return sum.apply(this,[num1,num2]);//传入数组
}
alert("callSum(10,10)="+callSum(10,10)+
"callSum1(10,10)="+callSum1(10,10)+"callSum2(10,10)="+callSum2(10,10));
</script>

6、JS事件处理器

1、函数响应事件

2、代码响应事件

3、调用事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值