【函数的声明和调用】
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

JavaScript函数、BOM的更多相关文章

  1. 第一百一十一节,JavaScript,BOM浏览器对象模型

    JavaScript,BOM浏览器对象模型 学习要点: 1.window对象 2.location对象 3.history对象 BOM也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM ...

  2. 第三章 JavaScript操作BOM对象

    第三章   JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...

  3. 现代JavaScript函数库 usuallyjs 的安装和使用

    usuallyjs usuallyjs 是一个面向现代 Web 开发的 JavaScript 实用函数库. usuallyjs 基于 ES6 开发,抛弃了传统 Web 开发中 DOM 和 BOM 操作 ...

  4. JavaScript的BOM和DOM

    JavaScript的BOM和DOM 1,window对象,所有浏览器都支持window对象,它表示浏览器窗口 BOM(browser Object Model)是指浏览器对象模型,它使JavaScr ...

  5. HtmlUnit爬取Ajax动态生成的网页以及自动调用页面javascript函数

    HtmlUnit官网的介绍: HtmlUnit是一款基于Java的没有图形界面的浏览器程序.它模仿HTML document并且提供API让开发人员像是在一个正常的浏览器上操作一样,获取网页内容,填充 ...

  6. JavaScript函数总结—越努力,越幸运!

    JavaScript 函数总结 JavaScript为web的编程脚本语言. JavaScript由三部分组成:emc(语法) dom(文档对象模型) bom(浏览器对象模型). [函数的定义] 1. ...

  7. javascript之BOM对象(一window对象)

    javascript包含三个部分,ECMAScript,BOM和DOM.ECMAScript是javascript的核心,包含javascript的基础语法.在Web中使用javascript,BOM ...

  8. 使用jQuery快速高效制作网页交互特效--JavaScript操作BOM对象

    JavaScript操作BOM 一.window对象: 二.window对象的属性和方法 1.windows对象的常用属性: 语法:window.属性名="属性值" 2.windo ...

  9. [JavaScript之BOM与DOM]

    [JavaScript之BOM与DOM] BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ( ...

  10. ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...

随机推荐

  1. aria2的安装与配置

    aria2安装 安装 epel 源: yum install epel-release 然后直接安装: yum install aria2 -y 配置 Aria2 创建目录与配置文件 这一步需要切换到 ...

  2. VMware 问题

    桥接模式下,小鸡上不了网问题 多网卡导致的问题 解决:编辑-虚拟网络编辑器 选择vmnet0,然后点击右下角更改设置 把自动改为指定要桥接的网卡,然后点击确定,测试看看.

  3. tensorboard_scalar

    import numpy as np from tensorboardX import SummaryWriter writer=SummaryWriter(log_dir="scala&q ...

  4. Synchronized 失效原因

    Synchronized 同步出现失效 Synchronized ,大家都知道这个是Java 提供的一种原子性内置锁,其实现原理是通过获取对象的监视器monitor进行来实现同步的,只有当线程获取到对 ...

  5. java面向对象2-封装

    2 封装 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,面向对象三大特点之一.好处: 防止数据被任意篡改,提高安全性 隐藏了实现细节,仅暴露方法 如何实现封装? 使用private关键字 ...

  6. jquery easyui datagrid 远程加载数据----把主键渲染为值遇到的问题及解决方案

    起因:数据库中一些字段存的是代表具体值的数字,需要渲染为具体值 monggodb中的字典 mysql中存放的值为:expertin代表教练擅长的搏击技能 jquery easyui中的相关代码如下:用 ...

  7. Css min-height max-height min-width max-height

    Css min-height应用地方解释我们有时设置一个对象盒子时候避免对象没有内容时候不能撑开,但内容多少不能确定所以又不能固定高度,这个时候我们就会需要css来设置min-height最小高度撑高 ...

  8. mysql8.0.16二进制安装

    mysql8.0.16二进制安装 环境简介操作系统:Centos 6.10 64位 目前版本:8.0.16 MySQL Community Server 二进制 安装目录:/data/mysql/my ...

  9. jQuery2.0.3源码

    概览 整体结构   (function (){ (21 , 94) 定义了一些变量和函数 jQuery=function(); (96 , 293) 给jQuery对象添加一些方法和属性; (285 ...

  10. 【leetcode】1230.Toss Strange Coins

    题目如下: You have some coins.  The i-th coin has a probability prob[i] of facing heads when tossed. Ret ...