JavaScript 学习之路(三)

day3,原生JS function()

最近在和舍友写自己的网站,一直没有更新自己的博客,我的网站终于完成啦!

js的函数和其他语言十分类似,因为学习过别的语言,学习起JS的函数也十分简单,所以我主要关注 与我之前学习的语言 的差别。

函数声明

两种声明函数的方法,主要区别是在于 函数的声明会在预编译阶段进行处理,而函数表达式并不会在预编译阶段进行处理,会在执行阶段再进行赋值,这是一个值得关注的问题,除此之外,es6推荐使用let 替代var  两者的区别是

let 声明的变量会拥有块作用域,与函数作用域类似,可以使用‘{ }’将let 生命的变量框起来,从而避免不同作用域 同名变量的冲突,且作用于内,let声明的变量只能声明一次,再次声明会报错。

var 声明变量是很早的用法了,没有块作用域限制,可以向父级传递,导致变量的混乱,且可以无限次重复声明。

        let fn1 = function(){
            alert('hello world!'); 
        }  //函数表达式
        function fn2(){
            alert('hello world!2');
        }    //函数的声明

 函数参数

js的函数参数是我用过最灵活的,不会像C一样,根据参数个数来确定函数,而是动态的使用参数

        let a = 'hello world!'
            ,fn1 = function(a){
            alert(a); 
        }    

 除此之外,与python差不多的,js还有不定参数,使用arguments 数组就可以获取到传入的参数

        let a = 'hello world!'
            ,fn1 = function(){
            alert(arguments[0]); 
        }
     function fn2(...values){
       console.log(values)
     }
     fn2(a,1,5,s,6);
     fn1(a);

 

return

函数中遇到 return 语句,该语句之后的语句都是无效的

        let a = 'hello world!'
            ,fn1 = function(){
            alert(arguments[0]); 
            return fn2(); //到此函数结束,后面代码无效
            alert(arguments[0]); 
            alert(arguments[0]); 
            alert(arguments[0]); 
            alert(arguments[0]); 
            alert(arguments[0]); 
            
        }
        function fn2(){
            alert('hello world!2');
        }
        fn1(a);

 欢迎关注我的新博客

posted @ 2019-03-16 17:00  jarhson  阅读(94)  评论(0)    收藏  举报