js函数简介

函数

函数的含义:程序的基本单元,是完成特定任务的代码语句块

语法:

function functionname() {

    这里是要执行的代码

}

例:

<button οnclick="myFunction()">点击这里</button>

<script>

    function myFunction(){

        alert("Hello World!");

    }

</script>

函数分类

系统函数

        如parseInt( )

自定义函数

        如luck( )

常用系统函数

parseInt ("字符串"):将字符串转换为整型数字

例:

document.write(parseInt(3.5)+"<br/>");

//parseInt() 解析一个字符串,返回一个整数

document.write(parseInt("3.5")+"<br/>");

//会对字符进行判断是否为有效数字,如果不是返回NaN

document.write(parseInt("abc3")+"<br/>");

document.write(parseInt("3.6abc")+"<br/>");


parseFloat("字符串"):将字符串转换为浮点型数字

例:

document.write(parseFloat("3.7")+"<br/>");

document.write(parseFloat("3.7abc")+"<br/>");

document.write(parseFloat("abc3.7")+"<br/>");

//第一个出现的小数点是有效字符,如果有两个小数点,第二个小数点被视作无效 document.write(parseFloat("3.7.6abc")+"<br/>");


isNaN( ):用于检查其参数是否是非数字形式

例:

document.write(isNaN("3.7")+"<br/>");

document.write(isNaN("3.7abc")+"<br/>");

自定义函数

简单理解自定义函数即可以自己命名的函数

例:

<button οnclick="myFunction()">点击这里</button>

<script>

    function myFunction(){

        alert("Hello World!");

    }

</script>

练习:显示菜单

需求说明:使用自定义函数创建函数 当鼠标单击“前端课程”标题时,显示二级内容

HTML:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<link rel="stylesheet" href="css/myCss.css">
		<script src="js/myJs.js"></script>
	</head>
	<body>
		<h2 onclick="show()">前端课程</h2>

		<ul id="test">
			<li>HTML5</li>
			<li>CSS3</li>
			<li>jQuery</li>
			<li>Canvas</li>
		</ul>
	</body>
</html>

CSS:
*{
	list-style: none;
	padding: 0;
	margin: 0;
}
ul li{
	width: 150px;
	height: 35px;
	line-height: 35px;
	text-align: center;
	background-color: orange;
}
ul{
	display: none;
}

JS:
function show(){
	 var ul=document.getElementById("test"); 
	 ul.style.display="block"; 
}

 带参函数

定义:

function 函数名(参数1,参数2) {

     //JavaScript语句;

}

调用:

 事件名="函数名( 参数1,参数2 )" ;

例:

<input name="btn" type="button" value="欢迎你,点我"  οnclick="study(3)" />

function study(count){

    for(var i = 1;i<=count;i++){

        document.write(i+"-欢迎学习JS函数<br/>");

    }

}

命名函数

如果函数有名字,就是命名函数

functuin f1(){

}

匿名函数

如果函数没有名字,就是匿名函数

functuin (){

}

定义函数

定义函数的两种方式

         函数声明

                function 函数名 () {  //函数体  }

         函数表达式

                var 变量 = 匿名函数 ;

                把一个函数给一个变量,此时形成了函数表达式        

例:

function f1(){

    console.log("哈哈哈")

}

f1();

var f2=function(){

    console.log("你好");

};

f2();

函数声明和函数表达式二者区别

function f1() {
	console.log("哈哈哈");
}
 f1();
function f1() {
	console.log("你好");
}
f1();  
var f2=function(){
	console.log("函数表达式");
};
f2();
var f2=function(){
	console.log("函数声明");
};
f2();

函数声明:如果出现两个一样的函数,后面的会覆盖前面函数

函数自调用

一般函数:

function 函数名() {

    //函数体

}

函数名();

自调用:

(function(){

    //函数体        

 })();

函数的数据类型

function f1() {

      console.log("我是函数");

}

f1();

console.log(typeof f1);

函数是有数据类型,它的数据类型是:function 

回调函数

函数A作为参数传递到另一个函数B中,并且这个函数B执行函数A。就说函数A叫做回调函数

例:

function f1(fn){

    fn();    

}

function f2(){

    console.log("我是回调函数哦~");

}

f1(f2);

函数可以作为返回值使用

例:

function f1() {

    console.log("f1函数调用了");

    return function () {

        console.log("这是一个函数");

    };

}

var ff = f1();

ff();

作用域&块级作用域

作用域:作用域就是在这一个区域内有作用(使用范围)

块级作用域:一对大括号就可以看成是一块

{
	var num=10;
}
console.log(num);

if(true) {  
	var num=20;
}
console.log(num);

for(var i=0;i<5;i++) { 
	var num=30;
}
console.log(num);

function f1() {
	var num=50;
}
f1();console.log(num);

JS中没有块级作用域,但是函数除外

局部变量VS全局变量

全局变量:在函数外声明的变量,网页上的所有脚本和函数都能访问它

局部变量:在函数内部声明的变量(使用var),只能在函数内部访问它

        可以在不同的函数中使用名称相同的局部变量

生存期

        局部变量在函数运行以后被删除

        全局变量在页面关闭后被删除

全局变量和局部变量区别:作用域不同、声明位置不同、生存期不同

隐式全局变量VS全局变量

隐式全局变量:指声明变量时没有使用声明变量的关键字

var a1=1;  //全局变量

a2=2;        //隐式全局变量

delete a1;

delete a2;

console.log(typeof a1);//number

console.log(typeof a2);//undefined

隐式全局变量是可以被删除的,但是全局变量是不能被删除的

作用域链

沿着作用域链一级一级地搜索的过程。搜索过程始终从作用域链底端开始,然后逐级向上回溯,直到找到为止(如果找不到,通常会报错)

var num = 10;
function f1 () {
    var num = 20;
    function f2 () {
        var num = 30;
        function f3 () {
	        var num = 50;
        	console.log(num);
        }
        f3();
    }
    f2();
}
f1();

预解析

console.log(num);
var num=10;

f1();
function f1() {
	console.log(num);         
	var num=10;
}       

1、变量的声明提前了----提前到当前所在的作用域的最上面

2、函数的声明也会被提前---提前到当前所在的作用域的最上面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值