JavaScript-Day05

  • 变量的作用域

全局作用域:函数以外

函数作用域:函数以内就是函数作用域

全局变量:全局作用域下声明的变量,可以在任意作用域下访问到

局部变量:函数作用域下声明的变量,只能在所在的函数作用域下访问

函数内不加var 声明的变量是全局变量

程序执行前,会将var声明的变量提升到所在作用域的最前边 ,知识提升声明部分,赋值不提升

var c=3;

function fun(){

 console.log(c);//undefined

 var c=5;

}

fun();

//在全局作用域下查找c,找的全局变量c

console.log(c);//3

var a;

console.log(a);

//var  a=1;

a=1;

设置全局变量。全局变量是在函数外部定义的变量,不属于任何函数。因此,调用函数中的return返回值,但您可以将其馀返回值分配给全局变量,从而获得返回多个值的效果。

  • 函数的作用域

全局函数:在全局作用域下创建的函数,可以在任意作用域下调用

局部函数:在函数作用域下创建的函数,只能在所在的函数作用域下调用

作用域链:作用域之间相互嵌套,查找变量的时候,先到当前作用域下查找,如果没有会一直往上一级作用域查找

函数提升:程序执行前,会自动将函数提升到所在作用域的最前边,可以先写调用在写创建

三、递归

在函数中调用自身这个函数,本身是一种死循环,会造成内存泄漏

使用递归:

   要有边界条件

找规律

   使用ruturn结束

斐波那契数列(第一项,2项是1),从第3项开始,每项的值是前两项的和。使用递归计算任意一项的值是多少?

1  1  2  3  5   8   13

n=(n-1)+(n-2)

四、匿名函数

function  (){}

没有名称函数

  1. 创建函数

函数声明

function  fn(){

}

函数表达式

  var fun=function(){

}

(1)函数名称()和函数名称的区别

函数名称() 调用函数,执行函数体的代码

函数名称,本质是一个变量,保存了函数

练习:使用匿名函数来创建getSum,传递任意两个数字,返回两者之间所有整数和

(2) 函数声明和函数表达式创建函数的区别

函数声明存在函数整体提升,可以创建再写调用

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

c();    //5

var c=2;

function c(){

 console.log(5);

}

c();    //报错

  1. 匿名函数的自调用

为了创建函数作用域,防止全局污染

;(function (){

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

})();

  1. 回调函数

将函数作为参数传递

function tao(madai,mmm){

 madai();//通过参数名称,调用传递的回调函数

}

function xin(){

}

tao(xin,mmm)

tao(function (){},….)

多个则逗号分开;

五、系统函数

Number()/parseInt()/parseFloat()…

isNaN()  检测字符串中是否含有非数字,含有àtrue,不含有àfalse

会自动调用函数Number()转为数值,然后查看是否为NaN

eval() 执行字符串表达式

自定义对象

数组

字符串对象

Date对象

Math对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值