文章目录

  • 一、JS作用域
  • 二、window窗口
  • 三、history对象
  • 四、location对象

本篇文章来简单介绍一下JS作用域,以及BOM对象中的三个基础对象,分别是window对象、history对象和location对象。

一、JS作用域

1、函数嵌套作用域

 //函数作用域var place="Beijing";  //外部定义的变量function outer(){var place="Chengdu";  //outer函数下的重新定义function inner(){var place="Guangzhou";  //inner函数下的定义console.log(place);}inner();}// //调用outer函数,同时会执行inner函数outer();

执行结果:
Guangzhou

2、函数多调用

 var name="路飞";function bar(){console.log(name);}function func(){var name="索隆";return bar;}var ret=func();  //将func函数执行的返回结果赋值给ret变量,即ret将代表bar函数ret();  //调用ret函数,即bar函数//又因为bar函数的作用域在外部,与它同级的name变量值为“路飞”

执行结果:
路飞

二、window窗口

1、BOM简介
BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 JavaScript 有能力与浏览器“对话”。

2、window对象方法汇总

  • alert() 显示带有一段消息和一个确认按钮的警告框。
window.alert("欢迎访问!");

  • confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
var ret= window.confirm("您确定要访问吗?");  //由用户做出选择,因此有一个返回值console.log(ret);

  • prompt() 显示可提示用户输入的对话框。
 var ret= window.prompt("您的访问指令:");  //要去用户输入内容,在控制台显示console.log(ret);

  • open() 打开一个新的浏览器窗口或查找一个已命名的窗口。(不常用)
  • close() 关闭浏览器窗口。(不常用)
  • setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
  • clearInterval() 取消由 setInterval() 设置的 timeout。
 setInterval(func,1000);  //表示每隔1000毫秒(1秒)执行一次函数func()function func(){console.log("Hello JavaScript!");}


可以看到这个地方会一直有"Hello JavaScript!"的出现。
下面是由setInterval和clearInterval实现的动态时间更新小案例…
JS(<script>标签内的)代码:

 showTime();function showTime(){var current_time=new Date().toLocaleString();  //获取当前时间并将其转化成字字符串显示// alert(current_time);var ele=document.getElementById("id1");  //获取id1这个标签的内容ele.value=current_time;  //将获取的id1标签的内容设置为输入框的值,实现动态更新时间}var click1function begin(){if(click1==undefined)  //防止多个click串行{showTime();  //实现无延迟效果click1= setInterval(showTime,1000);  //实现一秒更新一次时间}}function end(){clearInterval(click1);  //清除定时间隔}

外部再加两个标签:

<input type="text" id="id1" onclick="begin()">
<button onclick="end()">停止!</button>  <!--  绑定一个end函数 -->

  • setTimeout() 在指定的毫秒数后调用函数或计算表达式。
  • clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
 function func(){console.log("别点我了!");}var c= setTimeout(func,3000);  //三秒钟之后只执行一次//清除setTimeout 的内容// clearTimeout(c);

scrollTo() 把内容滚动到指定的坐标。(少用)

三、history对象

1、简介
History 对象包含用户(在浏览器窗口中)访问过的 URL。
History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。
2、history对象的方法

  • back() 加载 history 列表中的前一个 URL。
  • forward() 加载 history 列表中的下一个 URL。
  • go() 加载 history 列表中的某个具体页面。

3、测试代码
history1:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="JS之history2.html">通往history2</a>
<button onclick="history.forward()"> >>>>>>>> </button>
<script></script>
</body>
</html>

history2:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><button onclick="history.back()">Back</button>
</body>
</html>

这样就可以实现一个基本的前进和返回的效果(这个其实也不太常用)

四、location对象

1、简介
Location 对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。

2、location下的方法

  • location.assign(URL)
  • location.reload()
  • location.replace(newURL)//注意与assign的区别

3、测试代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<button onclick="f()">点我!</button><script>function f1(){// location.assign("www.baidu.com");  //默认跳转的页面// location.reload();  //刷新当前页面location.replace("www.baidu.com");  //替换当前页面//assign可以后退,replace不行}
</script>
</body>
</html>

JavaScript之BOM对象(JS函数作用域、window、history、location对象)相关推荐

  1. day04【JS高级】BOM对象、Window对象、二种定时器、 Location对象、DOM对象、DOM获取元素、DOM操作内容、DOM操作属性、DOM操作样式、DOM操作元素(标签)、 正则表达式

    回顾 1. js基础语法运算符:算数运算符可以与字符串进行数学运算,js底层进行隐式转换比较运算符:===(恒等) 特点,比较类型+内容流程控制语句if判断条件表达式:1)布尔2)数值:非0为真3)字 ...

  2. php js函数作用域,javascript 作用域详解

    作用域理解:定义的变量.函数生效的范围.javascript 有全局作用域和函数作用域两种. 注:es6实现let 块级作用域不是js原生的,底层同样是通过var实现的.如果想了解具体细节,请访问ba ...

  3. JS9day(BOM对象模型,setTimeout定时器,JS单线程执行机制,location对象,swiper插件,localStorage本地存储,购物车案例升级版,学习信息案例(本地存储))

    文章目录 BOM简介 定时器-延时函数 5秒关闭广告案例 递归模拟setInterval函数 两种定时器对比 JS 执行机制 location对象 navigator对象 histroy对象(了解) ...

  4. C#代码调用js函数,js函数中的document.getElementById(对象ID)得null值解决办法

    不知道大家有没有遇到这种情况,反正我就遇到过,我现在把解决方法写在下面. 解决方法:1,把调用js函数些在</from>下面.(我原来是写在head标签里面) 2,在cs页面定义一个全局变 ...

  5. php 合并数组对象,JS内数组合并方法与对象合并实现步骤详解

    这次给大家带来JS内数组合并方法与对象合并实现步骤详解,JS内数组合并方法与对象合并实现的注意事项有哪些,下面就是实战案例,一起来看一下. 1 数组合并 1.1 concat 方法var a=[1,2 ...

  6. window的location对象详解

    1:location对象即是window对象的属性也是document对象的属性,即window.location=document.location,通常我们在文档中使用的时候都是直接使用locat ...

  7. JS-function-BOM(window,history,location,navigator,screen)

    JS-内置构造函数function-BOM 1 回顾 Number Number 实例的属性和方法:toFixed()toString()Number 构造函数本身的属性和方法:Number.MAX_ ...

  8. window点location(仅介绍window点location对象,不介绍属性,因标题不能含有非法字符,.用点来代替)

    文章目录 1.前言: 2.window.location介绍 3.做CTF题时遇到的代码 4.总结 1.前言: 这个是我做CG-CTF-Web-单身二十年时遇到的,这里就该题简单总结一下 2.wind ...

  9. oracle对象权限 函数,oracle的系统和对象权限

    alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任 ...

最新文章

  1. mysql-5.7.24-winx64忘记密码该咋解决
  2. 在一个成熟的分布式系统中 如何下手做高可用?
  3. Markdown使用文档
  4. 在记录实体log信息的时候,2个公司的区别
  5. [YTU]_2625( 构造函数和析构函数)
  6. Numpy基础学习与总结
  7. Ubuntu 16.04 和 Ubuntu 18.04 启用 点击Launcher图标,窗口实现最小化 功能
  8. better-scroll 与 Vue 结合
  9. Oracle系统中表外键的更名
  10. Fiddler4入门--手机抓包工具安装和使用说明
  11. linuxshell如何实现进度条效果
  12. 单播、组播(目标广播、多播)、广播、泛洪、洪泛介绍与比较
  13. 逆向分析QQ消息自动回复机器人设计
  14. Can‘t open /dev/sdb1 exclusively. Mounted filesystem?
  15. git提交代码步骤和idea中不同颜色代表意义
  16. P2E游戏+保护濒危动物是否值得一玩,链游Pettoverse全面分析
  17. 佳能驱动支持,佳能打印机驱动无法安装的解决方法
  18. c语言成语接龙编程,C语言完成成语接龙小游戏
  19. python爬虫爬取京东商品评价_网络爬虫-爬取京东商品评价数据
  20. android 9.0 Launcher3去掉默认的google搜索栏

热门文章

  1. SpringBoot配置文件加密
  2. sql无法写入mysql_windows7 sqlserver2012 无法写入受保护的内存 解决办法
  3. 测试linux系统的程序员,日常测试Linux命令
  4. python print 分隔符_python print 使用分隔符 或行尾符
  5. 服务器400_瓜分400万filecoin的入门条件:现货服务器
  6. 自建ca根证书_独立根CA的安装与证书申请
  7. 把html压缩成dll,一篇文章带你浅入webpack的DLL优化打包
  8. Java业务面考什么_Java程序员面试技巧分享,面考官考查JAVA程序员常用的技术有哪些?...
  9. PCI、PCI-X、PCI-E AGP区别
  10. rman report list crosscheck delete -rman常用命令。