JavaScript学习笔记其三 | 青训营

46 阅读2分钟

21、BOM

(1)什么是BOM?

(Browser Object Model)

专门操作浏览器窗口的API——没有标准,有兼容性问题

(2)浏览器对象模型

window: 代表整个窗口

history: 封装当前窗口打开后,成功访问过的历史url记录

navigator: 封装浏览器配置信息

document: 封装当前正在加载的网页内容

location: 封装了当前窗口正在打开的url地址

screen: 封装了屏幕的信息

event: 定义了网页中的事件机制

(3)获取窗口大小

获取当前窗口大小

完整窗口大小:

window.outerWidth/outerHeight

文档显示区大小:

windowinnerWidth/innerHeight

(4)定时器

定义:让程序按指定时间间隔自动执行任务——网页动态效果、计时功能等

如何选择定时器?

只要反复执行,就用周期性

只要只执行一次,就用一次性

1、周期性定时器

让程序按指定的时间间隔反复执行一项任务

2、一次性定时器

让程序延迟一段时间执行

3、停止定时器

暂停定时器执行

实践案例:

//部分省略,因为head部分和body部分有大量的html和css相关的内容,并且内容数量过大。 //为确保本文章代码字数比合格,只展示js部分的代码

<script>
	var arr=document.querySelectorAll(".box-page");
	for (var i =0; i <arr.length; i++) {
		for(var r=0;r<3;r++){
			for(var c=0;c<3;c++){
				var divs=document.createElement("div");
				divs.style.cssText = "width:100px;height:100px;border: 1px solid #fff;position:absolute;box-sizing:border-box;background-image:url(img/"+i+".jpg);background-size:300px 300px;";
				arr[i].appendChild(divs);
				divs.style.left=c*100+"px";
				divs.style.top=r*100+"px";
				divs.style.backgroundPositionX=-c*100+"px";
				divs.style.backgroundPositionY=-r*100+"px";
}
}
}
</script>

23、JS事件实例

(0)JS事件

HTML 事件是发生在 HTML 元素上的事情。

当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。

24.补充

没有用var声明的变量

没有用var声明的变量会默认成为window下的属性,我们可以使用window.变量名来调用它。

此外,就算在函数中没有是用var定义,他依然是window属性属于全局变量。

  1. 补充

document.write(a); 将变量a打印到网络页面上。

NaN:全称not a number缩写,本来像得到一个数字,但是结果不是数字。

基本数据类型:number , string , boolean , null , undefined。

复杂数据类型:Object类型。

注意typeof 和 instanceof:

26.补充:包装对象

这里介绍以下三种原始类型:

数值,字符串,布尔

原始类型的数据在一定条件下可以自动转为对象,这就是包装对象。

例如:

var v1 = new Number(123);

console.log(v1);

上面的结果就是Number {123}。

原始值,可以自动当作对象来调用,因此可以调用各种属性以及方法。

如果包装对象使用完成,会自动立即销毁。

例如:

var str = '123';

console.log(str.length);

27.补充 this用法

27.1 指向对象中的this

27.2 指向全局对象的this

在一个普通的函数种也是有this的,并且这个this指向的是全局对象(window)。

27.3 this的指向

this运行在那个对象下,就指向那个对象。

注意函数是否带括号!!!