选择题:HTML+CSS+JS
参考链接:https://www.nowcoder.com/
非商业用途自由转载,保持署名,注明出处!
1.块内声明函数的做法?不要在块内声明一个函数(严格模式会报语法错误)。如果确实需要在块中定义函数,可以使用函数表达式来声明函数;
if (x) { var foo = function() {}}
2.js
var x = new Boolean(false);
if (x) {
alert('hi');
}
var y = Boolean(0);
if (y) {
alert('hello');
}
//hi
- 任何对象转为布尔值,都为得到 true(在 JS 中,只有 0,-0,NaN,"",null,undefined 这六个值转布尔值时,结果为 false)。
3.js
var c;
console.log(c);
(function() {
var a = b = 5;
})();
console.log(b);
console.log(a);
//5,Uncaught ReferenceError: a is not defined
- 找到了,未赋值才显示undefined;找不到则报错?
- (function(){})();为自执行函数
4.js全局函数
- setTimeout是window的一个方法,如果把window当做全局对象来看待的话,它就是全局函数。严格来讲,它不是
5.head 标签中必不少的是< title>,其他均可省
6.假设 output 是一个函数,输出一行文本。下面的语句输出结果是什么?
output(typeof (function() {output(“Hello World!”)})());//Hello World! undefined
7.sort排序函数:https://www.cnblogs.com/saifei/p/9043821.html
- 排序是按照字符串UniCode码的顺序进行排序的,数字也是
- 原理:若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列;否则降序。
- 升序函数
function numberSort(a,b)
{
return a - b;
}
var arr=new Array("23","6","12","35","76");
document.write(arr.sort(numberSort));
- 降序函数
function numberSort(a,b)
{
return b-a;
}
var arr=new Array("23","6","12","35","76");
document.write(arr.sort(numberSort));
8.JavaScript内部,所有数字都是以64位浮点数(8字节)形式储存,即使整数也是如此
9.HTML5 中,哪个方法用于获得用户的当前位置?getCurrentPosition()
- HTML5是语义化标签,尽量从语义考虑
10.H5新增标签:
- article: 标签定义外部的内容。
- aside:标签定义 article 以外的内容。a
- audio:h5新增音频标签。没有高宽属性
- canvas:h5新增画布标签。
- command: 定义命令按钮(未测试)
- datalist:标签定义选项列表。datalist 及其选项不会被想显示出来,它仅仅是合法的输入值列表
- details:标签用于描述文档或文档某个部分的细节。
- figure:标签用于对元素进行组合。
- figcaption:定义 figure 元素的标题。
- footer:定义 section 或 document 的页脚。
- header:定义 section 或 document 的页眉。
- hgroup:用于对网页或区段(section)的标题进行组合。
- keygen:标签规定用于表单的密钥对生成器字段
- mark:标签定义带有记号的文本。
- meter:通过min=“0” max="20"的方式定义度量衡。仅用于已知最大和最小值的度量。
- nav:定义document或section或article的导航。
- output:定义不同的输出类型,比如脚本。
- progress:定义任何类型的任务的进度。
- rp:定义若浏览器不支持 ruby 元素显示的内容
- rt:定义 ruby 注释的解释
- ruby:定义 ruby 注释
- section:标签定义文档中的节、区段。比如章节、页眉、页脚或文档中的其他部分
- source:audio和video的属性之一。为audio和video定义媒介源。
- summary:为details定义标题。
- time:定义日期或时间。
- video:h5新增视频标签。具有高宽属性。
11.CSS3新增属性用法整理:http://blog.sina.com.cn/s/blog_a01a36330101doc0.html
- box-shadow(阴影效果)
- border-color(为边框设置多种颜色)
- border-image(图片边框)
- text-shadow(文本阴影)
- text-overflow(文本截断)
- word-wrap(自动换行)
- border-radius(圆角边框)
- opacity(透明度)
- box-sizing(控制盒模型的组成模式)
- resize(元素缩放)
- outline(外边框)
- background-size(指定背景图片尺寸)
- background-origin(指定背景图片从哪里开始显示)
- background-clip(指定背景图片从什么位置开始裁剪)
- background(为一个元素指定多个背景)
- hsl(通过色调、饱和度、亮度来指定颜色颜色值)
- hsla(在hsl的基础上增加透明度设置)
- rgba(基于rgb设置颜色,a设置透明度)
12.js
var F=function(){};
Object.prototype.a=function(){};
Function.prototype .b=function(){};
var f=new F();
//f能取到a,但取不到b,所有普通对象都源于这个Object.prototype对象,只要是对象,都能访问到a
13.ES6:function 后面带 * 的叫做generator function。函数运行时,返回一个迭代器
function * gen() {
yield 1;
yield 2;
yield 3;
}
14.当用户打开一个网页时,想一直停留在当前打开的页面,禁止页面前进和后退的命令是:
window.history.forward(1);
window.history.forward(-1);
15.属于JavaScript的typeof运算符的可能结果:Number、String、Undefined、Symbol、Boolean
- null的typeof返回的是object,这是个javascript的历史bug
16.DNS:
- 将域名翻译成IP地址。
- DNS协议大多数运行在UDP协议之上
- DNS协议端口号为53
- chrome对每个域名会默认缓存60s;IE将DNS缓存30min;Firefox默认缓存时间只有1分钟;Safari约为10S。
17.常见的浏览器端的存储技术:
- cookie:
- localStorge: 存的更多,获取更方便,而且存储内容不会随请求发送给服务器
- IE 支持 userData 存储数据,但是基本很少使用到
18.hr也是块级元素
19.按钮button id为button1,通过原生的js如何禁用?
document.getElementById(“button1”).setAttribute(“disabled”,”true”);
document.getElementById(“button1”).disabled=true;
20.若需给子scope发送消息,需使用哪个方法?broadcast()
//$emit() 是向上冒泡!而$ broadcast() 是向下传播事件
21.表单中包含文件上传控件时
- 需要将enctype设置为multipart/form-data.
- enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
- 属性值:application/x-www-form-urlencoded 在发送前编码所有字符(默认)
- multipart/form-data :不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。
- text/plain :空格转换为 “+” 加号,但不对特殊字符编码。
22.模块化:
- sea.js----CMD;require.js—AMD(记忆:CS,AR)
- AMD推崇依赖前置,CMD推崇依赖就近
23.HTML:
<div id=”info” style=”display:block”><p> 请填写 </p></div>
js:
document.getElementById(“info”).innerHTML
innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。
返回:
<p>请填写</p>
24.js:
var x=10;
function cals(myNum) {
return x+myNum;
}
返回: cals(7)=17
25.display:
- display:block
- display:inline:内联元素只能容纳文本或者其他内联元素,它允许其他内联元素与其位于同一行,但宽度(width)高度(height)不起作用。常见内联元素为“a”
- display:inline-block
26.input中type:
27.解释型语言的特性有什么?非独立,效率低!
28.display:none在隐藏元素的时候,将其占位空间也去掉;而visibility:hidden只是隐藏了内容而已,其占位空间仍然保留。且均符合HTML5标准
29.实现翻书的效果可以使用css3里的什么方法?rotateY(沿y轴旋转)!而translateY沿y轴平移
30.只有IE支持defer模块
31.avaScript实现继承共6种方式:
原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承。
32.在准备XMLHttpRequest对象时,在send()前需要调用哪个方法?open ()
33.在jquery中,如果想要获取当前窗口的宽度值,下面哪个是实现该功能的?width()
34.js
if(! "a" in window){
var a = 1;
}
alert(a);//undefined
但是由于变量的提前声明,以上代码与如下代码等价:
var a;
if(!“a” in window ){
a=1;
}
alert(a);
35.在HTML中,( )可以在网页上通过链接直接打开邮件客户端发送邮件。
<a href=”mailto:ming.zhou@nowcoder.com”>发送邮件</a>
36.js
首先全部输出first,然后全部输出second.因为JavaScript 是单线程的,setTimeout 设置的是异步任务等其他代码执行,所以这里会等待 for 循环执行完毕才会执行定时器设置的任务。
37.表单提交时会触发什么Dom方法?submit
38.var arr =[1,3,2]下,输出:
arr.push(3);//返回长度4,arr改变了
arr.reverse();//报错,arr改变了
[].concat.call(arr,[1,2]);//返回新数组,arr并未改变
arr.sort();//报错;arr改变了
39.DOM中的事件对象:
- preventDefault() 取消事件默认行为
- stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用。
- stopPropagation() 取消事件冒泡对当前节点无影响。
IE中的事件对象: - cancelBubble() 取消事件冒泡
- returnValue() 取消事件默认行为
40.哪个标签告诉浏览器把其中的文本表示为强调的内容?< em></ em>
41.继承就是指子节点默认使用父节点的样式属性。
可以继承的属性很少,只有颜色,文字,字体间距行高对齐方式,和列表的样式可以继承。
- 所有元素可继承:visibility和cursor。
- 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。
- 终端块状元素可继承:text-indent和text-align。
- 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
42.标题的标签到h6为止
43.代码回收规则:
- 全局变量不会被回收。
- 局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁。
- 只要被另外一个作用域所引用就不会被回收?
- 闭包中的局部变量是不会被回收的
var i = 1;
var i = 2;//覆盖上一个i,全局,不会被回收
var add = function() {//add,全局,不会
var i = 0;
return function()
{
i++;//闭包,不会
console.log(i);
}
}();
add();
如有不当之处,欢迎指正!