在某网课学习前端笔记整理js篇16-js的一等公民–函数

js的一等公民–函数

js函数的特性

为啥叫一等公民呢,js的创建者更偏爱于面向过程的c类似的语言,创建js是老大安排的做的,而面向过程主要是函数(或者叫方法),于是函数被创建者赋予了基本上其他基本类型的大多功能。

  • 函数是一个数据类型

    ​ 函数和js中Number、String、Boolean、Object这些都是作为js的基本数据类型。如果你用typeof一个函数类型的函数名,会返回“function”。但不同与其他类型,函数可以通过() 执行函数内容。

  • 函数是一个独立的作用域

    ​ 只在函数内声明的变量不会被外部访问到。

    example

    <script>
      	var a = 2;
    	function f(){
          var a = 1;
        }
      	console.log(a);//结果为2
    </script>
    
  • 函数可以当做对象去使用

    ​ 对象具有的很多操作函数都有(作为一个参数、返回值…)。

    example

    <script>
    	function f(fn){
          return fn;
        }
        var fn = function(){
          console.log("function");
        }
        f(fn)();
    </script>
    

函数的定义

​ 有三种,如下:

<script>
	//1.定义式(有名函数)
	function fn(param1,...paramn){
		//执行的内容
	}
  	//2.表达式(匿名函数)
    var fn = function(param1,...paramn){
		//执行的内容
    }
    //3.想对象一样创建,很少用,性能低
    var fn = new Function();
    
</script>

函数的参数和返回值

arguments.callee返回拥有arguments对象的函数。

​ js没有重载这个东西,函数的参数是不定的,可以通过arguments这个对象获取到实际的参数 和传入的参数。函数默认返回值是undefined,可以通过return返回其他的值。

example

<script>
  function fn(a,b){
    console.log("实际传入的参数个数:"+arguments.length);
    console.log("函数要求传入的参数个数:"+arguments.callee.length);
    console.log("函数的第一个参数:"+arguments[0]);
  } 
  fn(1,2,3);
</script>

回调函数

example

<script>
  function fn(callback){
    callback();
  }
  fn(function(){
    console.log(1);
  });
  //结果控制台输出1
</script>
发布了27 篇原创文章 · 获赞 0 · 访问量 221

猜你喜欢

转载自blog.csdn.net/qq_34338676/article/details/104715492