前端问题-第一天
- 1.下列哪个样式定义后,内联(非块状)元素可以定义宽度和高度
- 2.css属性overflow属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。
- 3.新窗口打开网页,用到以下哪个值()。
- 4.flash和js通过什么类如何交互?
- 5.元素的alt和title有什么异同,选出正确的说法?
- 6.下面有关html5标签说法错误的有?
- 7.下面有关浏览器中使用js跨域获取数据的描述,说法错误的是?
- 8.下面这个JS程序的输出是什么:
- 9.下面符合一个有效的javascript变量定义规则的是?
- 10.apply方法和call方法
- 11.下述有关border:none以及border:0的区别,描述错误的是?
1.下列哪个样式定义后,内联(非块状)元素可以定义宽度和高度
- A.display:inline
- B.display:none
- C.display:block
- D.display:inherit
display属性 | 作用 |
---|---|
block | CSS1 块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行 可以定义高度和宽度 |
none | CSS1 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间 |
inline | CSS1 内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行 |
inline-block | IE5.5 将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内 inherit: 看display默认是不具备继承性的,使用inherit可以让其继承父对象的display属性。 |
2.css属性overflow属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。
- 参数是scroll时候,必会出现滚动条。
- 参数是auto时候,子元素内容大于父元素时出现滚动条。
- 参数是visible时候,溢出的内容出现在父元素之外。
- 参数是hidden时候,溢出隐藏。
3.新窗口打开网页,用到以下哪个值()。
值 | 描述 |
---|---|
_blank | 在新窗口中打开被链接文档。 |
_self | 默认。在相同的框架中打开被链接文档。 |
_parent | 在父框架集中打开被链接文档。 |
_top | 在整个窗口中打开被链接文档。 |
framename | 在指定的框架中打开被链接文档。 |
4.flash和js通过什么类如何交互?
Flash提供了ExternalInterface接口与JavaScript通信
两个方法:call和addCallback
作用:call让Flash调用js里的方法,addCallback是用来注册flash函数让js调用。
5.元素的alt和title有什么异同,选出正确的说法?
同时设置时,alt是在图片未加载完成的时候做完图片的替代文字线性,title是图片的解释文字
图片加载完成后是看不到alt的
6.下面有关html5标签说法错误的有?
- <audio> 标签定义声音,比如音乐或其他音频流
- <canvas> 比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本。亦或是来自其他外部源内容
- <menu> 标签定义菜单列表。当希望列出表单控件时使用该标签
- <command> 标签定义命令按钮,比如单选按钮、复选框或按钮
<audio> 标签定义声音,比如音乐或其他音频流。 A正确。
<canvas> 标签定义图形,比如图表和其他图像。 标签只是图形容器,您必须使用脚本来绘制图形。 B错误,<article>标签定义外部的内容。比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本。亦或是来自其他外部源内容。
<menu> 标签定义命令的列表或菜单。<menu> 标签用于上下文菜单、工具栏以及用于列出表单控件和命令。 C正确
command 元素表示用户能够调用的命令。 标签可以定义命令按钮,比如单选按钮、复选框或按钮。只有当 command 元素位于 menu 元素内时,该元素才是可见的。否则不会显示这个元素,但是可以用它规定键盘快捷键。 D正确。
7.下面有关浏览器中使用js跨域获取数据的描述,说法错误的是?
- 域名、端口相同,协议不同,属于相同的域
- js可以使用jsonp进行跨域
- 通过修改document.domain来跨子域
- 使用window.name来进行跨域
只要 协议 、 域名 、 端口 有任何一个 不同, 都被当作是 不同 的域。
8.下面这个JS程序的输出是什么:
function Foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f1 = Foo(),
f2 = Foo();
f1();
f1();
f2();
0 1 0
(1)Function是引用类型:保存在堆中,变量f1,f2是保存在栈中;
(2)闭包:一个函数(产生新的作用域)定义的局部变量、子函数的作用域在函数内,
但是一旦离开了这个函数,局部变量就无法访问,所有通过返回子函数到一个变量f1的方法,让
f1指向堆中的函数作用域,这样可以使用局部变量i.
(3) 过程:
第一次f1() :f1=Foo()中,先执行Foo(): i = 0,return值返回给f1
(f1指向子函数 f1()=function(){…},因为子函数没有 定义i,所以向上找到父函数定义的 i: )并执行子函数 输出i=0,再自加 i =1(覆盖了父函数Foo 的 i值);
第二次f1() : 执行的是子函数 Function(){ …},输出的是父函数 的 i=1,再自加 i =2;
第一次f2():同第一次f1(),不同的是 f2指向堆中一个新的对象 function(){ …},所有此i非彼i,输出i=0;如果
如果再次f2(),那么和第二次f1(),一样输出i=1;
9.下面符合一个有效的javascript变量定义规则的是?
第一个字符必须是一个字母、下划线(_)或一个美元符号($);其他字符可以是字母、下划线、美元符号或数字。
10.apply方法和call方法
call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同。对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。(在使用call()方法时,传递给函数的参数必须逐个列举出来。使用apply()时,传递给函数的是参数数组)如下代码做出解释:
function add(c, d){
return this.a + this.b + c + d;
}
var o = {a:1, b:3};
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
11.下述有关border:none以及border:0的区别,描述错误的是?
- border:none表示边框样式无
- border:0表示边框宽度为0
- 当定义了border:none,即隐藏了边框的显示,实际就是边框宽度为0
- 当定义边框时,仅设置边框宽度也可以达到显示的效果
C:当定义border:none时,表示无边框样式,浏览器并不会对边框进行渲染,也就没有实际的宽度;
D:定义边框时,除了设置宽度外,还必须设置边框的样式才能显示出来。