每周总结(二)

BOM

  • 浏览器对象模型
    - BOM可以使我们通过JS来操作浏览器
    - 在BOM中为我们提供了一组对象,用来完成对浏览器的操作
    - BOM对象
    window
  • window对象代表的是整个浏览器的窗口,同时window也是网页中的全局对象

navigator

  • 代表的当前浏览器的信息,通过该对象可以识别不同的浏览器

location

  • 代表当前浏览器的地址栏信息,通过location可以获取地址栏信息,或者操作浏览器跳转页面

history

  • 代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录。
  • 由于隐私的原因,该对象不能获取到具体的历史栏记录,只能操作浏览器向前或向后翻页,而且该操作只在当次访问时有效。

screen

  • 代表用户的屏幕的信息,通过该对象可以获取到用户的显示器的相关的信息

这些对象在浏览器中都是作为window对象的属性保存的,可以通过window对象来使用,也可以直接使用

定时调用

如果希望一段程序,可以每间隔一段时间执行一次,就可以使用setInterval()该方法。

setInterval()的作用

  • 定时调用
  • 可以将一个函数,每隔一段时间执行一次
  • 参数:
    1.回调函数:该函数会每隔一段时间调用一次。
    2.每次调用间隔的事件,单位是毫秒。
var num=1;
var timer= setInterval(function(){
	count.innerHTML=num++;
	if(num==11){
		clearInterval(timer);
    }
},100)//100是指每次调用该方法,中间间隔的时间为100ms
//结果:10

定时器的应用

我们可以使用定时器来使图片进行自动切换。

var img1 = document.getElementById("img1");//先获取img标签
var imgArr = ["img/1.png", "img/4.png", "img/5.png", "img/6.png", "img/7.png"];//再将需要播放的图片传进数组
var index = 0;//定义一个数组索引
 btn01.onclick = function () {
		setInterval(function () {
			index++;
			img1.src = imgArr[index];
			if (index == imgArr.length - 1) {
				index = 0;
			}//这里设置一个if判断语句,用来判断当前图片是否播放到最后一张,如果播放到最后一张,则将索引重新赋值为0,返回第一张图片
 			}, 1000);
}

我们写完了这块代码后会发现,如果重复点击btn01,图片切换的速度会越来越快。这是因为如果重复点击btn01,会同时开始多个定时器进行计时,所以我们在开启定时器时,要将当前元素上的其他定时器进行关闭。

var timer;
 btn01.onclick = function () {
 		clearInterval(timer);//调用清除方法,将定时器清除
		timer=setInterval(function () {
			index++;
			img1.src = imgArr[index];
			if (index == imgArr.length - 1) {
				index = 0;
			}
 			}, 1000);

延时调用

如果我们希望一个函数不马上执行,而是间隔一段时间后再执行,则可以使用setTimeout()方法。

setTimeout()使用方法和setInterval()一样,只不过会延时执行,在开发中根据需求使用。

类的操作

通过style属性来修改元素的样式,每修改一个样式,浏览器就需要冲洗渲染一次页面。这样执行的性能是比较差的,而且这种形式当我们要修改多个样式时,也不太方便。

而当我们想统一修改一项元素时,可以通过操作class属性来改变元素的样式。此时浏览器只需要重新渲染页面一次,性能比较好,并且这种方式,可以使表现和行为进一步地分离。

定义一个函数,用来向一个元素中添加指定的class属性

function addClass(obj, cn) {
	if(!hasClass(obj,cn)){
		obj.className +=" "+cn;
	}
}

判断一个元素中是否含有指定的class属性值,如果有返回true,没有返回false。

function hasClass(obj,cn){
	var reg=new RegExp("\\b"+cn+"\\b");// var reg=/\bb2\b/;
	return reg.test(obj.className);
}

删除一个元素中指定的class属性。

function removeClass(obj,cn){
	var reg=new RegExp("\\b"+cn+"\\b");
//删除class
	obj.className=obj.className.replace(reg,"");
}

定义一个函数用来切换一个类,如果元素中有该元素则删除,如果没有则添加。

function toggleClass(obj,cn){
	if(hasClass(obj,cn)){
		removeClass(obj,cn);
	}else {
		addClass(obj,cn);
	}
}

v-on指令

  • v-on指令的作用是:为元素绑定事件
  • 事件名不需要写on
  • 指令可以简写为@
  • 绑定的方法定义在methods属性中
  • 方法内部通过this关键字可以访问定义在data中的数据
var app = new Vue({
	el: "#app",
	data: {
		food: "西蓝花炒蛋"
	},
	methods: {
		doIt: function () {
		alert("做IT");
		},
		changeFood: function () {
			this.food+="好好吃"
		}
	},
})
//HTML
input type="button" value="v-on指令" v-on:click="doIt">
<input type="button" value="v-on简写" @click="doIt">

计数器

  • 创建Vue实例时,el(挂载点),data(数据),methods(方法)
  • v-on指令的作用是绑定事件,简写为@
  • 方法中通过this,关键字获取data中的数据
  • v-text指令的作用是:设置元素的文本值,简写为{{}}
  • v-html指令的作用是:设置元素的innerHTML
var app=new Vue({
	el:"#app",
	data:{
		num:0
	},
	methods: {
		add:function(){
			if(this.num<10){
			this.num++;
			}
		},
		sub:function(){
			if(this.num>0){
			this.num--;
			}
		}
	},
})
//HTML
<div id="app">
        <button @click="sub"> - </button>
        <span>{{num}}</span>
        <button @click="add"> + </button>
    </div>

let变量声明

1.变量不能重复声明

let star='罗志祥';
let star='小猪';//Identifier 'star' has already been declared

2.块级作用域

{
	let girl='周扬青';
	console.log(girl);
}
console.log(girl);//girl is not defined

3.不存在变量提升

console.log(song);
var song='恋爱达人';//undefined
let song='恋爱达人';//Cannot access 'song' before initialization

4.不影响作用域链

{
	let school='长江大学';
	function fn(){
		console.log(school);
	}
	fn();
}//长江大学
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值