2019.8.21一些面试题以及记录

今天给大家分享一些面试题,以及我个人的见解,话不多说,上题!

var person={fname:"John",lname:"Doe",age:25};

var txt="";

for (x in person){

       txt= txt + x+ person[x];

}

alert(txt);

输出为?

person是一个对象,对象的遍历是遍历它的下标,所以x指的便是对象中的

fname,lname,age。

而对象有又是以关联数组的形式来访问里面的值,就是person[x],而不是person.x

所以txt是下标和值的相加

最后输出的是:

fnameJohnlnameDoeage25

var a =100;

function f(){

var a = 200;

function g(){

return a;

}

return g;

}

console.log(f()());

题目要求输出f()(),注意是两次执行

第一次执行:

var a = 200;

function g(){

return a;

}

return g;

返回函数g,第二次执行:

调用函数g,return a,这是返回的a是f函数中的a,因为它沿着

作用域链找a的话,f函数里面刚好有,不会去window里面找的,所以输出结果为

200

Object.prototype.bar = 1;

var foo = {moo : 2};

for(var i in foo){

              console.log(i);

}

输出的i为:moo bar

数组对象原型中有bar,遍历的话也会遍历到原型中,这是遍历的特性

所以输出为moo bar

列出display常用的值,说明他们的作用

none 隐藏元素,并且不占据原来的空间

block 像块级元素一样显示

inline-block 像行内块一样像是

inline 行内元素

list-item 像会计元素一样显示,并且添加样式列表标记

CSS选择器有哪些?请举例并写出权重值

id                  100

class             10

标签              1

通用            

伪类              1

后代    

子代

兄弟

call、apply和bind的区别和作用?

均是改变this的指向

Call和apply是临时改变this指向,即改变及执行  call的参数是依次传递,apply通过数组传递

bind永久改变this的指向,因为根据原函数新创建一个新函数,不会立即执行

JavaScript内置的常用对象有哪些?

Number String Boolean Error Global/window Array Function Object Math Date RegExp

解释CSS sprites的优点

CSS sprite将多个小图标整合到一张图中

其优点是:

减少网页http请求,提高性能

减少图片字节

减少命名困扰

更改风格方便

function doSomething(){

alert(this);

}

① 直接执行doSomething()。

② element.onclick = function(){doSomething()},点击element元素后。

③ element.onclick = doSomething,点击element元素后。

第一个输出的是window

直接执行这个函数,this指向的便是window

第二个输出element

element的点击事件是这个函数,这时this指向改为element

第三个输出window

可将将函数function doSomething()转换为function element.onclick()

这时指向还是window

题目中四个输出分别是 2  4  1  1

foo.getname()找的是第二个函数,直接输出2

getname()找的是后面名叫getname的函数,

但是直接function声明的getname函数会被之后用var声明的getname函数覆盖,所以为4

foo().getname()在foo调用后,找到的便是调用后的getname,而不会去找后面的getname

第四问同理,foo已经在第三问调用

猜你喜欢

转载自www.cnblogs.com/awei313558147/p/11389437.html
今日推荐