【前端】笔试题 2019.08.09

选择题: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:[email protected]>发送邮件</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();
-----------------------------------------------------------------------------------------------------------------

如有不当之处,欢迎指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章