前端问题解析

1.JS中DOM节点操作,添加,删除,插入,查询,创建,复制节点

    //1.创建节点
    document.createElement();//创建一个新元素
    document.createTextNode();//创建一个文本节点
    //2.查找节点
    document.getElementById('');//按id查找
    document.getElementsByClassName('');//按类名查找
    document.getElementsByTagName('');//按节点名称查找
    document.getElementsByName('');//按name查找
    //3复制节点
    cloneNode(true)//true:深复制,复制该元素以及后代元素
    cloneNode(false)//false:浅复制,只复制节点本身
    //4节点操作
    appendChild(node)//在末尾添加元素
    insertBefore(node,targrt)//在targrt几点之前插入元素
    removeChild(node)//移除父节点的某个子节点
    replaceChild(newnode,oldnode)//将父元素的某个子元素替换为新元素

2.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。

function clone(obj){
        var o;
        switch (typeof obj){
            case 'undefined':
                break;
            case 'string':
                o=obj+'';
                break;
            case 'number':
                o= obj+0;
                break;
            case 'boolean':
                o = obj;
                break;
            case 'object':
                if(obj === null){
                    o = null;
                }else{
                     if(Object.prototype.toString.call(obj).slice(8, -1) === "Array"){
                        o = [];
                        for(var i=0;i<obj.length;i++){
                            o.push(clone(obj[i]));
                        }
                     }else{
                        o={};
                        for(var j in obj){
                            o[j] = clone(obj[j]);
                        }
                     }
                }
                break;
            default:
                o = obj;
                break;
        }
        return o;
    }

3.javascript的typeof返回哪些数据类型

string,number,boolean,undefined,object,function

4.js 实现数组去重

数组去重这个问题好像还挺多问到的,这个问题并不是很困难,方法也有很多,这里我只写了两种。

    function sort1(){//方法1
        var arr1 = [0,1,2,2,3,5,8,8,4,4,6];
        var arr2 = [];
        for(var i=0;i<arr1.length;i++){
            if(arr2.indexOf(arr1[i]) < 0){
                arr2.push(arr1[i]);
            }
        }
        return arr2;
    }
    function sort2(){//方法2
        var arr1 = [0,1,2,2,3,5,8,8,4,4,6];
        var arr2 = [];
        arr1.sort(function (a,b) {
            return a-b;
        })
        for(var i=0;i<arr1.length-1;i++){
            if(arr1[i] != arr1[i+1]){
                arr2.push(arr1[i]);
            }
        }
        arr2.push(arr1[arr1.length-1]);
        return arr2;
    }

5.统计一行字符串中字母个数或出现次数最多的字母

var str = “aaaabbbccccddfgh”;
var obj = {};
for(var i=0;i

展开阅读全文

没有更多推荐了,返回首页