• 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已经在第三问调用

  • 相关阅读:
    uva------(11464)Even Parity
    java SE学习之线程同步(详细介绍)
    MFC学习之窗口基础
    java多线程的常用方法(以及注意事项)
    java多线程下如何调用一个共同的内存单元(调用同一个对象)
    java之多线程(Thread)
    HDUOJ------3336 Count the string(kmp)
    hduoj------2594 Simpsons’ Hidden Talents
    POJ--2158--------------Milking Grid(最小覆盖字符矩阵)---(开二维kmp)
    poj-------------(2752)Seek the Name, Seek the Fame(kmp)
  • 原文地址:https://www.cnblogs.com/awei313558147/p/11389437.html
Copyright © 2020-2023  润新知