关于web前端的几个小知识点

关于js

1、js代码是单线程执行的,这肯定是毋庸置疑的,但是异步的代码又是怎么回事呢?
首先理解,js先是顺序的执行代码,遇到异步的则将他放进一个队列当中,等到主线程的代码执行完成过后再去队列里取出来,执行这个模块,若这个模块再次遇到异步,则再次放进队列,依次执行;
举个例子:

			for (var i = 1; i <= 3; i++) {
				setTimeout(function () {
					console.log(i);
				}, 0)
			}

你可以先猜猜这段代码会打印什么?答案是4,4,4!这是因为for循环在执行时,遇到异步的,则继续执行for,而不执行打印,等for执行完成之后,这时候i的值变成了4,3次打印则变成了4,4,4。你可以选择用let来实现。
而关于js的执行顺序有更多的东西我就不说了,如果你碰巧看到了建议去了解一下!这个在头条的面试题里曾经提到过。
2,document.body.contentEditable=true,这是个有趣的东西,你可以去自己试试。

关于html

1、对于input的onchange属性,这个很多人都知道,他是用来监听当值改变时,则会触发一个函数。但是这也是有东西的,当这个值是手动输入的时候可以触发,但是如果是你的js脚本触发时,这个方法则不会被触发,还有更多的像vue的v-change,angular的ng-change属性都是这样!

2、很多有趣的属性怎么自定义呢?比如你给你的button设置了一个data属性,然后你怎么去获取这个属性?
答案是document.attr().

3、

	display:table,display:tablecell

这是一个布局方式,实用性堪比flex,

发布了20 篇原创文章 · 获赞 5 · 访问量 2077

猜你喜欢

转载自blog.csdn.net/qq_42859887/article/details/103667127