美文网首页
Web前端面试题大全

Web前端面试题大全

作者: 极课编程 | 来源:发表于2020-02-16 13:43 被阅读0次

1.JS找字符串中出现最多的字符

例如:求字符串'nininihaoa'中出现次数最多字符

var str = "nininihaoa";
    var o = {};
    for (var i = 0, length = str.length; i < length; i++) {
        var char = str.charAt(i);
        if (o[char]) {
            o[char]++;  //次数加1
        } else {
            o[char] = 1;    //若第一次出现,次数记为1
        }
    }
    console.log(o);   //输出的是完整的对象,记录着每一个字符及其出现的次数
    //遍历对象,找到出现次数最多的字符的次数
    var max = 0;
    for (var key in o) {
        if (max < o[key]) {
            max = o[key];   //max始终储存次数最大的那个
        }
    }
    for (var key in o) {
        if (o[key] == max) {
            //console.log(key);
            console.log("最多的字符是" + key);
            console.log("出现的次数是" + max);
        }
    }

结果如图所示:

image

2.JS实现九九乘法表

jQuery实现方式:

var sum=0;
var wite;
for (var i = 1; i < 10; i++){
        var div=$('<div class="class'+i+'"></div>');
        $("body").append(div);
        for(var j = i; j > 0; j--){
                sum = j * i;
                wite = (j+"X"+i+"="+sum);

                div.prepend($('<span style="padding-right:10px">'+wite+'</span>'));
        }
        
}

实现结果如图所示:

image

原生js实现方式:
css代码:

html,body,ul,li {
    padding: 0; 
    margin: 0; 
    border: 0; 
}
ul { 
    width: 900px;
    overflow: hidden;
    margin-top: 4px;
    font-size: 12px; 
    line-height: 36px;
}
li { 
    float: left; 
    width: 90px; 
    margin: 0 4px; 
    display: inline-block; 
    text-align: center; 
    border: 1px solid #333; 
    background:yellowgreen; 
}


for(var i = 1; i <= 9; i++){
    var myUl = document.createElement('ul');
    for(var j = 1; j <= i; j++){
        var myLi = document.createElement('li');
        var myText = document.createTextNode(j + " × " + i + " = " + i*j);
        myLi.appendChild(myText);
        myUl.appendChild(myLi);
    }
    document.getElementsByTagName('body')[0].appendChild(myUl);
}
image

3.前端面试:这几道前端面试:这几道前端面试题很绕吗?做对了几道?

第一题
var fun = function(){
    this.name = 'peter';
    return {
    name: 'jack'
    };
}

var p = new fun();
//请问p.name是:

第二题
var fun = function(){
    this.name = 'peter';

    return 'jack';    
 }

var p = new fun();
//请问p.name是:

第三题
var fun = function(){}

fun.prototype = {
    info : {
    name : 'peter',
    age : 25
    }
}

var a = new fun();
var b = new fun();

a.info.name = 'jack';
b.info.name = 'tom';

//请问a.info.name和b.info.name分别是:

第四题
var fun = function(){
    this.info = {
    name : 'peter',
    age : 25
    }
}

var a = new fun();
var b = new fun();

a.info.name = 'jack';
b.info.name = 'tom';
//请问a.info.name和b.info.name分别是:

第五题
var fun = function(){}

fun.prototype = {    
    name : 'peter',    
    age : 25    
}

var a = new fun();
var b = new fun();

a.name = 'jack';
b.name = 'tom';
//请问a.name和b.name分别是:

第六题
var fun = function(){
    this.info = {
    name : 'peter',
    age : 25
    }
}

fun.prototype = {
    info : {
    name : 'peter',
    age : 25
    }
}

var a = new fun();
var b = new fun();

a.info.name = 'jack';
b.info.name = 'tom';
//请问a.info.name和b.info.name分别是:

4.通过示例搞懂JS闭包
5.JS重复输出一个给定的字符串
6.函数声明相关
7.作用域范围(Scope)
8.创建 “原生(native)” 方法
9.变量提升(Hoisting)
10.在javascript中,this是如何工作的
11.call() 和 apply()
12.闭包(Closures)
13.数据类型问题]
14.事件循环
15.算法问题
16.记腾讯一次糟糕的笔试面试经历
17.语义化标签
18.事件绑定相关
19.CSS选择器问题
20.一段关于JS中this应用奇葩代码引发的思考
21.列举你工作中遇到的IE6 BUG,谈谈解决方案
22.如何用CSS分别单独定义IE6、7、8的width属性
23.CSS中哪些属性不可以从父元素继承
24.你如何理解HTML结构的语意化
25.做好SEO需要考虑什么
26.我们知道可以以外链的方式引入CSS文件,请谈谈外链引入CSS有哪些方式,这些方式的性能有区别吗
27.CSS Sprite是什么,谈谈这个技术的优缺点
28.以CSS3标准定义一个webkit内核浏览器识别的圆角(尺寸随意)
29.如何触发这Doctype的标准模式和混杂模式?区分它们有何意义?
30.行内元素有哪些?块级元素有哪些?CSS的盒模型?
31.前端页面有哪三层构成,分别是什么?作用是什么?
32.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
33.怎样添加、移除、移动、复制、创建和查找节点
34.面向对象编程:b怎么继承
35.请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象
36.在工作中,对浏览器的兼容性怎么看待的
37.new 操作符具体干了什么?
38.[] 和 Array 调用 slice 方法引起的问题
39.使用localStorage存储数据,存储位置在哪里?
40.([] + {}).length ?
41.渲染优化
42.事件的各个阶段
43.快速的让一个数组乱序
44.最快捷的数组求最大值
45.更短的数组去重写法

相关文章

网友评论

      本文标题:Web前端面试题大全

      本文链接:https://www.haomeiwen.com/subject/pcmpfhtx.html