JavaScript 函数二

12 篇文章 2 订阅
3 篇文章 1 订阅

1.匿名函数 

(1)函数声明与函数表达式的对比

函数表达式

var  fun=function(){

}

//调用函数

fun();

变量名称就是函数名称

普通函数也叫函数声明 

function fun(){

}

fun()//调用函数

对比函数名称()函数名称

函数名称()调用函数,执行函数体中的代码,得到返回结果

函数名称  是一个变量,变量中保持了一个函数

对比函数声明与函数表达式的区别

函数名称创建的函数存在函数整体提升,可以先写调用在写创建

函数表达式创建的函数只是存在变量声明的提升,必须先写创建在写调用

//函数最先提升,然后变量提升
//如果函数名称和变量名称相同时  变量不在提升
var c = 2; //重新给c赋值
function c() { //函数会提升  函数第一  变量第二   =//var c=function(){}
    console.log(3);
}
c(); //函数先提升  报错, c是一个数字2 不是一个函数 

使用函数表达式创建函数,传递任意两个参数,计算两个数字之间所有整数的和,返回结果 

var getSum = function (n1, n2) {
    //循环产生出n1~n2所有整数
    for (var i = n1, sum = 0; i <= n2; i++) {
        sum += i;
    }
    return sum;
}
console.log(getSum(1, 100));

(2) 匿名函数的自调用

 为了防止全局无染

(function(){

  //函数作用域,变量是局部变量

})();//自调用括号里的参数 

函数自调用  可以用来网页轮播图 因为实际开发变量可能会相同 函数自调用可以防止全局污染 

全局污染:全局变量的出现带来的影响 

解决全局污染:都转为局部变量  

        (function(a){
            //函数作用域,变量是局部变量
            var num=5;
            console.log(num,a)
        })(9)

(3)回调函数

将函数作为参数传递

 function  a(add){

  add()  //调用传递进来的函数

}

function  b(){

}

a(b)  //函数b作为参数传递就是回调函数

//还有可以用匿名函数作为参数传递

a  (function( ){    })//匿名函数作为参数传递也是回调函数

function a(add) {
    console.log('这是第一个函数');
    //实参会赋值个形参
    //就是add=b
    //通过参数add来调用b传递回来的函数
    add();//相当于调用b()
}

function b() {
    console.log('这是第二个函数')
}
//(a(b)) 不要加括号 会报错
a(b) //将函数b作为实参参数传递,这叫做回调函数

2.系统函数

isNaN()检测一个值是否为NaN,会隐式转换为数值,是NaN->true  不是NaN->false

var str='1a';

//isNaN(),会将数据隐式转数为数值

console.log(Number(str));//NaN   //内部会先执行这句  转数值在检测是否是NaN

console.log( isNaN(str));//true

判断用户输入的数字的值是否为NaN,如果NaN打印'请提供一个数字' 否则打印'错误格式'

        var a = '1';
        if (isNaN(a)) {
            console.log('请提供一个数字')
        } else {
            console.log('格式正确')
        }

 eval()   执行字符串表达式

//eval  评价评估意思
console.log('1+2'); //'1+2'
console.log(eval('1+2')); //3

console.log('parseInt(6.18)'); //'parseInt(6.18)'
console.log(eval('parseInt(6.18)')); //6 
//如果用eval单词语法错误 也会报错

工具网站 https://www.w3school.com.cn/js/index.asp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值