1. 1. js大课堂1
    1. 1.1. 细想之下,今天学习的内容并没有多少。大致有
      1. 1.1.1. 浏览器的准备工作
      2. 1.1.2. 函数的作用域
      3. 1.1.3. 函数的三种形式
      4. 1.1.4. 简单复习运用retrun和传参

js大课堂1

细想之下,今天学习的内容并没有多少。大致有

浏览器的准备工作

1.浏览器在执行之前会把变量和函数表达式预解析,并且提升到当前作用域的顶端。

2.给函数赋值

var a=0;-----相当于-----var a;
                    a=0;

函数的作用域

只有函数才能生成局部变量或作用域

全局变量可以在任何地方访问
函数内部的变量,对外是不可见的
函数内部可以访问外部函数的变量

函数的三种形式

函数的三种形式:声明函数,匿名函数,函数表达式。

声明函数:使用function关键字+函数名

function name(){
     console.log('0909')
}
name ();

匿名函数:就是使用function关键字是没有函数名的的函数

(function(){
     console.log('hoho')    
 })()

函数表达式:使用function关键字,没有函数名,赋值给一个变量

var f =function(){
     console.log('hoho')
 }
f ()

函数表达式vs函数声明的 区别:函数表达式可以使用()操作符,立即执行;函数声明不可以;

简单复习运用retrun和传参

例子

function fn(){
     var max=10;
     var fn2=function(num){
        if (num>max) {
             console.log(max);
                                                              console.log(num);

         };
     }
     return fn2;
}
 var news=fn();
 news(20);

我们来解析一下该程序的运行流程:

先看外部函数声明fn,如果fn执行的话它的最后得到结果是return fn2;也就是说fn的返回值为函数表达式为fn2。接下来我们再看看fn2如果执行的话会做什么。我们可以看到 var fn2=function(num),fn2里有个参数num,这就需要我们注意了,待fn2执行时要记得把里面的参数传到程序中。

好接着看fn2内部都有什么执行内容?if语句表示判断,如果参数num大于max则执行下部程序,好接下来我们就要找max的值,在函数表达式中我们并没有找到关于max的赋值语句,那再看一下表达式外部的声明函数fn,我们会发现 var max=10;哎,找到max的值了,10.
好接着看判断语句if内部究竟做了什么?console.log(max);console.log(num);打印两个值max,num。好,我们知道这个程序是干什么的了就好办了。

再看函数声明fn外部

var news=fn();
news(20);

首先呢,定义一个变量叫news,并把fn执行后的结果赋值给他,那么根据上面的解析,fn执行后的结果就是返回函数表达式fn2喽,所以就等于把函数表达式fn2赋值给news了。

其次再解析 news(20)干了什么?news(20)就相当于fn2(20)这点应该没疑问。 作为参数的20要取代函数表达式里所有的num,看一下if判断语句if(20>10),哎,成立。那么执行接下来的内部程序,打印出max和num的值,也就是10和20。

好,本段例题解析结束。关于return我们需要注意的是:

return的默认值为undefined

<!doctype html>