# JavaScript函数

系统函数

parselnt() 可以解析一个字符串返回一个整数
var num1=parselnt("56.64");  //返回值为56
var num2=parselnt("123abc"); //返回值为123
var num3=parselnt("abc123");  //返回值为NaN
parseFloat() 可解析一个字符串 返回一个浮点数
var num1=parseFloat("56.64");  //返回值为56.64
var num2=parseFloat("123abc"); //返回值为123
var num3=parseFloat("abc123");  //返回值为NaN
var num=parseFloat("52.18.97"); //返回52.18
isNaN() 函数用于检查其参数是否是非数字
var num1=isNaN("56.64");  //返回值为false

var num2=isNaN("123abc"); //返回值为true
var num3=isNaN("abc123");  //返回值为true

自定义函数

函数声明

// 语法
function 函数名 (参数列表){
   //JavaScript 语句
    [return 返回值]
}
无参函数示例
<input type="button" value="显示5次欢迎学习javascript" onclick="study()">
function study(){
   
 for (var i = 0; i < 5; i++) {
        document.write("欢迎学习javascript")
    }
}
有参函数示例
<input type="button" value="显示5次欢迎学习javascript" onclick="study(prompt('请输入显示欢迎学习javascript的次数:',''))"/>

<script>
    function study (conut){
        for (var i = 0; i < conut; i++) {
            document.write("欢迎学习javascript")
        }
    }
</script>
匿名函数及自调用
(study (conut){
        for (var i = 0; i < conut; i++) {
            document.write("欢迎学习javascript")
        })();
/*
匿名函数只能调用一次,可以用来初始化操作,也能保证一些安全性
*/
回调函数( 将方法当作参数带入方法中)
function f1(fn){
    console.log("f1函数调用了")
    fn();
    
}
function f2(){
   console.log("f2函数调用了")
}
f1(f2);
/*
当掉用f1函数时,f2函数将作为参数传入,运行时首先输出"f1函数调用了",之后输出"f2函数调用了"

f2()函数作为参数传递到f1中,并且在f1函数中执行fn()函数,这时,f2()函数可以被称作为调回函数,如果没有指定函数名,可以被称作匿名回调函数
*/

函数表达式

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

语法:
var 标量 = function(参数列表){
    //JavaScript语句
};
预解析
/* 
	JavaScript中,两个函数名一样时,前一个会被后一个覆盖
    但是如果将函数用变量来接收时,就不会被覆盖
    因为js的函数存在预解析
    
    变量的声明会提前,但是赋值不会预解析,就是说使用变量在定义变量之前的话,会出现 nudefined 也就是未赋值
    函数的声明也会提前
*/

作用域和作用域链

作用域和作用域块

作用域( Scope )就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。

块级作用域是由大括号限定的,在块级作用域下,所有的变量都定义在大括号内的,从定义开始到大括号结束这个范围可以使用

// var 可写可不写,如果不写就会变为隐式全局变量
//只有在方法中定义的 变量才叫 局部变量
a=1;// 隐式全局变量
var b = 1;//全局变量

function aaa(){
    var c=1;// 局部变量
    d = 1;//隐式全局变量
}

if(true){
   var e=1;//全局变量
   }
alert(e);//可以被调用
// 由此可知,只用函数中的{} 才能降低作用域
作用域链

当查找变量的时候,会从当前上下文的变量对象中查找,如果没有找到就会从父级执行上下文的变量对象,即全局对象,这样由多个执行上下文的变量对象构成的链表就被称作为作用域( Scope Chain);

var num=0; //0级作用域
function aa(){
    var num=1; // 1级作用域
    function bb(){
        var num=2; //2级作用域
        function cc(){
            var num=3; //3级作用域
        }
    }
}

事件:

onload:一个页面或一副图像完成加载
onclick:鼠标单击某个对象
onmouseout: 鼠标指针离开某个元素
onkeydown:某个键盘按键被按下
onchange:域的内容被改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值