zoukankan      html  css  js  c++  java
  • JavaScript函数、BOM

    【函数的声明和调用】
    1.>>>函数声明的格式:形参可以不用var声明
        使用function关键字声明:
        function 函数名 (参数1,参数2,......){
          //函数体
        return 结果;
        }

    >>>函数调用格式:
    函数名(参数1的值,参数2的值,......)

    2.函数声明的几点强调
    ① 函数名的声明必须符合小驼峰法则(首字母小写,之后每个单词首字母大写);
    ② 参数列表,可以有参数,可以无参数。分别称为有参函数,无参函数。
    ③ 声明函数时的参数列表,称为"形参列表"(变量的名);
     调用函数时的参数列表,称为"实参列表"(变量的值);
     函数中,实际有效的参数取决于实参的赋值,未被赋值的形参,将为undefined

    ④ 函数如果需要返回值,可用return返回结果。
    调用函数时,使用变量 var 变量名 = 函数名(); 接收返回结果,
    如果函数没有返回值,则接收结果为undefined

    ⑤ 函数中变量的作用域:
    在函数中,使用var声明的变量,默认为函数的局部变量,只在函数内部使用;
    不用var声明的变量,默认为全局变量(函数中的全局变量,必须在函数调用后才能使用)
    函数的形参列表,为函数局部变量,只在函数内部使用。

    ⑥ 函数的声明和调用没有先后关系,即函数的调用可以在声明之前。

    【匿名函数的写法】
    1.声明一个匿名函数,直接赋给某个事件。
      window.onload = function (){}
      事件后面的函数当然可以是任意函数,可以是常规函数调用。
      window.onload = func();

    2.使用函数表达式,声明匿名函数:
      声明函数:var func = function(){}
      调用函数:func(); //相当于函数名
      >>>使用匿名函数表达式,调用语句,必须在声明语句之后,否则报错(对比常规函数声明与调用的区别?)

          使用函数表达式可以实现函数名和函数声明的分离,使得函数更加灵活

    3.使用自执行函数,声明并直接调用匿名函数:
      ① !function (){ //函数体 } (); //使用任意运算符开头,推荐使用!
      ② (function (){ //函数体 } () );//使用()将匿名函数及之后的括号包裹
      ③ (function (){ //函数体 }) (); //使用()只包裹匿名函数表达式
    三种写法特点:
      ① 结构清晰,开头加!,结尾加()。结构清晰 推荐!
      ② 可以表明匿名函数与之后的()为一个整体。 推荐!
      ③ 无法表明函数与之后的()为一个整体。 不推荐!

    >>>1无法调用有参函数 2,3可以调用有参函数

    【arguements对象】
    1.作用:用于保存调用函数时,所赋值的实参列表
      >>> 当调用函数,并使用实参赋值时,实际上参数已经保存到arguements数组中,即使没有形参,也可以使用arguments[n]的形式调用参数。

    2.arguments数组的个数取决于实参列表,与形参无关。(顺序从0开始)
    但当第n个位置的形参、实参、arguement都存在时,形参与arguement都是同步的(即在函数中修改其中一个的值,另一个会同步变化)
    >>>数组声明后,数组中数组长度以外的元素是undefined,或者可以说它们是未被赋值的数组元素

    3.arguements.callee 是arguements的重要属性,用于返回arguments所在函数的引用;
      arguments.callee() 可以调用自身函数执行;

    在函数内部调用函数自身的写法,被称为递归,所以arguments.callee()是递归调用时常用的方式。

    【this】
    指向函数调用语句所在作用域,函数的调用者

    【screen对象的属性】

      console.log(screen.availHeight);//屏幕可用高度
      console.log(screen.height);//屏幕高度
      console.log(screen.availWidth);//屏幕可用宽度
      console.log(screen.width);//屏幕宽度

    【location对象的属性】
    完整的URL路径组成:
      协议://主机名(ip地址):端口号(不写,默认apache的80端口)
          /文件路径(pathname)?[传递参数](name1=value1)&(name2=value2)#[锚点]

    console.log(location.href);     //完整路径
    console.log(location.protocol);  //有 http: https: ftp: mailto: file:
    console.log(location.pathname); //文件路径
    console.log(location.port);     //端口号
    console.log(location.search);   //从?开始后面的部分
    console.log(location.hostname); //主机名(IP地址)
    console.log(location.host);    //主机名+端口号
    console.log(location.hash);    //从#开始的锚点

    【navigator】:
      appName:产品名称
      appVersion:产品版本号
      userAgent:用户代理信息
      platform:系统平台
      plugins:检查浏览器安装的插件信息

      navigator.plugins:返回一个数组,数组存放浏览器安装的所有插件
      >>>主要的属性有:
        description:插件描述信息
        filename:插件在本地磁盘的文件名。
        length:插件的个数
        name:插件名

       navigator.mimeTypes 浏览器插件,所支持的文件类型
        description:MIME类型描述
        enabledPlugin:支持此类型的浏览器插件
        suffixes:此类型可能有的后缀名
        type:MIME类型的写法。如: image/x-icon text/css

    【重点】window对象的常用方法
      >>>window对象中的所有方法,均可以省略前面你的window,比如close();
        1.prompt():弹窗接收用户输入
        2.alert():弹窗警告
        3.confirm():带有确认/取消的按钮提示框
        4.close():关闭浏览器当前选项卡
        5.open():重新打开一个窗口,传入参数(url,name,窗口特征)
        窗口特征不同浏览器生效不同,所以可以不用

        6.setTimeout:设置延时执行,只会执行一次
        两个参数:函数名(无法传参),时间(表示延迟多少秒后执行)
        一个返回值:ID
        7.setInterval:设置定时器,每隔N毫秒执行一次
        两个参数,需要执行的函数的函数名(不要加实参列表的括号),或者直接写匿名函数。
        时间:时间间隔
        函数名作为参数进行传递,无法传参(回调函数)


        8.clearTimeout:清除延时执行
        一个参数:setTimeout返回的ID
        9.clearInterval:清除定时器
        传入一个参数:调用setInterval是返回一个ID,通过变量接受ID,作为参数传入clearInterval

  • 相关阅读:
    吴裕雄 python 机器学习——高斯贝叶斯分类器GaussianNB
    吴裕雄 python 机器学习——分类决策树模型
    吴裕雄 python 机器学习——回归决策树模型
    吴裕雄 python 机器学习——线性判断分析LinearDiscriminantAnalysis
    吴裕雄 python 机器学习——逻辑回归
    吴裕雄 python 机器学习——ElasticNet回归
    吴裕雄 python 机器学习——Lasso回归
    吴裕雄 python 机器学习——岭回归
    吴裕雄 python 机器学习——线性回归模型
    【2017 Multi-University Training Contest
  • 原文地址:https://www.cnblogs.com/slk-fight/p/6721181.html
Copyright © 2011-2022 走看看