1.HTML5 文档可能包含一个______元素用于设置文档的标题部分?
header
<header>:页眉通常包括网站标志、主导航、全站链接以及搜索框。
<nav>:标记导航,仅对文档中重要的链接群使用。
<main>:页面主要内容,一个页面只能使用一次。如果是web应用,则包围其主要功能。 <article>:定义外部的内容,其中的内容独立于文档的其余部分。 <section>:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
<aside>:定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表等。
<footer>:页脚,只有当父级是body时,才是整个页面的页脚。
</footer></aside></section></article></main></nav></header>
2.表示新开一个标签页的超链接代码是:()
<a href=URL target=_blank>..</a>
_blank:在新窗口打开
_self:在当前窗口打开
_parent:在父级窗口打开
_top:在最顶级窗口打开
3.HTML5 之前的 HTML 版本是什么?
HTML 4.01
HTML的发展版本
HTML 2.0:基于SGML(Standard Generalized Markup Language,标准广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变而来的。HTML 2.0 是 1996 年由 Internet 工程工作小组的 HTML 工作组开发的。HTML 2.0 是过时的 HTML 版本。目前在市场上可以找到的浏览器都依赖于更新版本的 HTML。对于一位 WEB 开发者而言,没有任何必要需要 HTML 2.0 标准。
HTML 3.2:1997年1月14日,HTML 3.2作为W3C标准被发布。HTML 3.2 向 HTML 2.0标准添加了被广泛运用的特性,诸如上标和下标、围绕图像的文本流、表格、applets、字体。但是此次的发布却为HTML 内容和呈现的分离任务带来了不必要的麻烦。
HTML 4.0:1997年12月18日,HTML 4.0作为一项W3C 推荐被发布。1998年4月24日,修正的第二个版本发布,仅仅进行了一些小改动编辑。HTML 4.0最重要的特性是引入了样式表(CSS)。
HTML 4.01:1999年12月24日,由于HTML 4.0存在着漏洞,HTML 4.01作为一项 W3C 推荐被发布,HTML 4.01 是对 HTML 4.0 的一次较小的更新,对后者进行了修正和漏洞修复。至此,HTML 到达了它得第一个拐点。W3C 不会继续发展 HTML。未来 W3C 的工作会集中在 XHTML 上。
XHTML 1.0(最新版本的HTML):2000年1月20日,XHTML 1.0作为一项 W3C推荐被发布。XHTML 1.0规范的内容与HTML 4.01完全相同,没有添加任何新元素或新属性。这两个规范唯一的差别就是对HTML的语法作出了不同的规定。HTML给予了作者最大的自由度,他们可以按照自己的意愿去写元素和属性,但XHTML要求作者遵从XML规则,XML是W3C大多数技术规范的基础,是一种更为严格的标记语言。XHTML 1.0使用 XML 对 HTML 4.01进行了重新地表示。我们的 W3C XHTML简介章节总结了 XHTML是什么。
HTML 5:W3C 于 2008 年 1 月 22 日发布 HTML 5 工作草案。通过制定如何处理所有 HTML 元素以及如何从错误中恢复的精确规则,HTML 5 改进了互操作性,并减少了开发成本。HTML5目前的状态已经不似先前那么含含糊糊了,但仍然还是不甚明了。与HTML5真正有关系的日期应该是2012年。这是它预计将会成为“候选标准”的时间。成为“候选标准”,就意味着标准的制定工作结束了。HTML5并不是一门凭空造出来的新语言。它的标记变化都是革新性的,不是革命性的。无论你现在使用哪个版本的HTML创建网站,你都可以说自己已经在使用HTML5了。
5.控制台打印的结果是?
for(let i=0;i<2;i++){
setTimeout(function(){
console.log(i)
},100
);
}
for(var i=0;i<2;i++){
setTimeout(function(){
console.log(i)
},100
);
}
0 1 2 2
①Js是单线程的,Settimeout是异步宏任务,所以代码执行遇到异步的,就放在事件队列中的,等线程中的任务执行完后才会执行事件队列中的任务。
② let是es6中声明变量的方式,有自己的作用域块,可以放变量,所以let绑定for循环时,每个i都有自己的值. 在这个for循环中就是满足一次条件向事件队列中添加一个打印i的事件,且每个事件中的i有自己的值
③Var没有作用域块,for循环的变量就会后一个覆盖前一个,当循环完毕时i就只有一个值,又因为for循环的判断条件是不满足跳出,所以i最后是2而不是1
④这些完了后执行事件队列中的任务,就打印了0122
6.程序的输出是什么?
var myObject = {
foo: "bar",
func: function() {
var self = this;
console.log(this.foo);
console.log(self.foo);
(function() {
console.log(this.foo);
console.log(self.foo);
}());
}
};
myObject.func();
bar
bar
undefined
bar
依次输出 bar bar undefined bar
理解关键:方法/函数是由谁(对象) 调用 的,方法/函数内部的 this 就指向谁(该对象);
注意:被谁调用,不是处于谁的作用域,即使在作用域
1、func是由myObject调用的,this指向 myObject。
2、self指向myObject,相当于 myObject的this的副本。
3、这个立即执行匿名函数表达式(IIFE)是由window调用的,this指向 window 。
4、IIFE的作用域处于myObject.func的作用域中,本作用域找不到self变量,沿着作用域链向上查找self变量,找到了指向 myObject对象的 self。
6.在 HTML 文档中包含如下超链接,要实现当鼠标移入该链接时,超链接文本大小变为 30px ,选项中的编码正确的是
<a href="#" οnmοuseοver="this.style.fontSize='30px'">注册</a>
鼠标移入onmouseover,移出onmouseout
<a href="#" οnmοuseοver="this.style.fontSize='30px'">注册</a>
在js里面添加的属性名使用驼峰法,在css里面使用连接线
7.以下代码的执行打印结果是?
var arr =[];
arr[0]= 0;
arr[1]= 1;
arr.foo = 'c';
console.log(arr.length);
console.log(arr);
2
本身数组就是对象
这里要理解所谓‘数组’其实是array类型对象的一个特殊作用,就是:我们可以对它进行一种模式的数据存储,但除此之外,它依然是一个对象
var arr = [‘1’,‘2’] //这本质上是一系列操作:得到一个数组对象;调用了它的数组方法存入了一些数据,arr.length根据存入数据的数目被修改
arr.length,对arr对象的length属性进行一个访问
arr.foo = ‘hello’ 对arr对象创建一个属性,所以.foo 跟.length地位是并列的:就是arr的一个属性,同时arr的数组方法跟这些属性是毫不相关的
8.y和z的最终结果为:
<script>
var m= 1, j = k = 0;
function add(n) {
return n = n+1;
}
y = add(m);
function add(n) {
return n = n + 3;
}
z = add(m);
</script>
4,4
1.js里面没有函数重载的概念,在其他语言中(如java)java中,可以存在同名函数,
2.只要传入的参数数量或者类型不同即可。在js中,定义了两个同名函数后,
3.后面的函数会覆盖前面定义的函数。结合这道题来说,由于函数声明提升,
4.所以函数声明会提前,由于存在同名函数,后面的add函数将覆盖第一个add函数,
5.所以两次调用add()返回的值是相同的。也就是y,z都为4.
9.关于屏幕的尺寸标准,说法错误的是
col-xs-*用于小于700的手机屏幕
10.关于web表单登录中用到的图形验证码的实现,以下做法不正确的有:
返回给浏览器的html代码中包含图形验证码和文本字符串,登录前客户端判断输入内容和页面中保存的内容是否一致
服务器端在返回的图片和cookie中同时包含图形验证码,登录前客户端判断输入内容和cookie保存的内容是否一致
浏览器通过识别图形验证码中的内容和用户输入的内容判断是否一致
关键在于:验证是由服务器完成的而不是浏览器的活
服务器将“锁-钥匙”造出来,将图片形式的钥匙发送给浏览器,服务器本身留着文本形式的“锁”,最后需要钥匙传送回服务器才能解锁。