AI智能
改变未来

js函数

文章目录

  • 函数
  • 调用函数
  • 普通函数:
  • 构造函数
  • 1.创建函数
    • 1.函数字面量
    • 2.函数声明
    • 3.匿名函数
    • 4.解析顺序
    • js中只要函数名相同,即为重写
    • js中实际参数个数可以和形式参数个数不一致,数据类型也可以不一致,
  • 2.函数的调用
  • 3.函数的内部属性
    • 1.arguments:类数组对象
    • 2.this:
    • 3. 形参
  • 4.作为值的函数和作为返回值的函数
    • 作为值:
    • 作为返回值
  • 5. 函数的属性
  • 函数

    function say(){}say()funciton run(){}Number()new Object()

    调用函数

    js中,所有函数的内部结构都是一样的

    普通函数:

    function say(){}Number()

    构造函数

    new Object()函数就是一个对象

    1.创建函数

    1.函数字面量

    var say=function(){}

    2.函数声明

    function say(){}

    3.匿名函数

    (function(){})()
    function say(){alert(\"hello-say---\");}var run=function(){alert(\"run-------\");}say()run()

    4.解析顺序

    1.   优先解析函数的声明,然后解析使用var操作符声明的变量2.函数的参数形式参数(形参)实际参数(实参)
    function enjoy(a,b){console.log(a,b);}enjoy(34,4,5,6,\"hello\");// 34,4function say(a,b){console.log(a+b);}say(1);

    js中只要函数名相同,即为重写

    function say(){}function say(a,b){}say();

    js中实际参数个数可以和形式参数个数不一致,数据类型也可以不一致,

    2.函数的调用

    普通函数:函数名()构造函数:new 函数名().call    可以改变this指向.apply

    3.函数的内部属性

    1.arguments:类数组对象

    用来保存实际参数列表length:实际参数的个数callee:用来从函数内部指向函数本身
    function enjoy(a,b){//1.var a; var b;console.log(arguments.length);     //输出个数 5console.log(arguments.callee); }//ƒ enjoy(a,b){enjoy(34,4,5,6,\"hello\");//1.vara; var b;console.log(arguments.length);//console.log(arguments.callee);  }

    2.this:

    vi:兜底对象globalhtml:兜底对象window函数赖以执行的环境对象1.什么时候确定?当拥有当前this的函数被调用的时候确定2.指向谁调用当前拥有this的函数,this指向谁
    例子function say(){console.log(this);//window}say();//window.say()var obj={say:function(){console.log(this);}}obj.say();//obj

    3. 形参

    形式参数:在声明函数时,写在function后的()中实际参数:在调用函数时,写在函数名后()中js中没有重载概念,所有函数名相同的函数,均为重写实际参数可以和形式参数的个数不一致 类型也可以随意

    4.作为值的函数和作为返回值的函数

    作为值:

    function say(){//1001console.log(\"hello\");}function sayHello(fn){//var fn;//say->arguments[0]:1001->//arguments[0]->fn//fn:1001fn();   //俩个fn都是形参}sayHello(say);//say为实参

    作为返回值

    function say(){return function(){console.log(\"hello\");}}var result=say();result();console.log(result);

    5. 函数的属性

    say.length:形式参数个数函数的调用:this->指定函数内部this值call(this,实参列表)apply(this,[实参列表])prototype:原型对象
    function say(a,b){console.log(arguments);console.log(this);}//say(1,2,3,4,5);//say.call({},3,4,5);   //把this指向改为{},给a赋值3,给b赋值4var obj={say:say}//obj.say.call(window,4,5,6);//把this指向改为window,给a赋值4,b赋值5obj.say.apply([],[5,6,7,8]);//把this指向[],把类数组对象给argumentsconsole.log(say.length);//打印形参个数2(a,b)
    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » js函数