其他分享
首页 > 其他分享> > 常见的一些面试题(三)

常见的一些面试题(三)

作者:互联网

一、选择题

原生JS创建元素的方法是什么?(A)

  1. document.createElement
  2. document.createTextNode
  3. document.getElementById
  4. document.getElementByTagName

二、多选题

1.原生JS中绑定事件的方法有哪些(AD)

       A.addEventListener

       B.  createElement

       C. querySelector

       D. attachEvent

2.原生JS中异步代码有哪些?(AD)

       A.定时器

       B.构造函数实例化对象

       C.for循环

       D.事件

三、简答题

1.闭包的理解,特点,写一个闭包的代码?

概念:可以访问其他函数内部变量的函数(函数里面套函数,内部函数访问外部函数的变量)

特点:闭包中使用的变量/函数会一直存储在内存中,类似全局变量,避免全局污染,每次调用之后形成一个新的局部作用域

缺点:可能会造成内存泄漏,闭包不用的时候,手动释放,数据大量缓存,导致内存浪费,不能垃圾回收机制

代码:

    function out() {

                var a = 10;

    function inner() {

                console.log(a++)

        }

        return inner;

        };

2.js有哪些对象?

1.原生对象/本地对象:String,Boolean,Number,Object,Array,Function,RegExp,Error,Date

2.宿主对象:BOM,DOM

3.内置对象:Global,Math

4.全局对象:Window

3.如果ul中有一万个li 给每一个li添加点击事件 点击打印张三

    事件委托实现

//1.获取元素

var ul = document.querySelecter('ul');

console.log(ul);

//2.添加事件

ul.οnclick=function(){

//3.获取触发源

var tar = event.target || event.srcElement;

//4.判断如果节点名称是li 打印张三

if(tar.nodeName =='LI'){

console.log('张三');

}

}

4   .写出数学对象中含哪些方法以及对应含义解释

    Math对象:

1.PI:π

2.floor:向下取整

3.ceil:向下取整

4.round:四舍五入

5.abs:绝对值

6.pow:幂次方

7.sqrt:开根号

8.random:0-1之间的随机数

9.random()*数:0-数之间的随机数

10.random()*(y-x)+x:区间(x,y)的随机数

11.max:最大值

12.min:最小值

5.封装一个可以获取元素的非行间样式函数

 function getStyle(ele,attr){

if(window.getComputedStyle){

return getComputedStyle(ele)[attr]

}else{

return ele.currentStyle[attr]

}

}

//调用

getStyle(img,"width")

6.什么是数组的深浅拷贝?举例说明。

 浅拷贝: 指内存中地址的赋值, 存在一改全改的问题 

var arr = [1,2,3,4];

var brr = arr;

console.log(arr, brr);

arr[4] = 10;

console.log(arr, brr); // [1,2,3,4,10] [1,2,3,4,10]

深拷贝: 再划分一块区域, 把每个数据在对应的位置重新存储的过程

var crr = ['a', 'b', 'c'];

var drr = []; // 划分区域

// 每个crr的数据存储到drr中

for(var i = 0; i < crr.length; i++){

// drr的下标和crr应该是一样的

drr[i] = crr[i];

}

console.log(crr, drr);

crr[3] = 'fffff';

console.log(crr, drr); // ?["a", "b", "c", "fffff"] ["a", "b", "c"]

三、实操题

有这样一个字符串'http://item.taobao.com/item.html?a=1&b=2&c=&d=xxx&e',要求转化成{‘a’:1,’b’:2,’c’:,’d’:xxx,’e’:undefined}

方法一:

    var str= 'http://item.taobao.com/item.html?a=1&b=2&c=&d=xxx&e';

//将字符串分割成两部分 取下标为1 的一部分

var arr = str.split('?')[1].split('&');

var obj = {}

for(var i =0;i<arr.length;i++){

obj(arr[i])

}

       方法二:

    var str = "http://item.taobao.com/item.html?a=1&b=2&c=&d=xxx&e";

     var json = {};

     if(str.indexOf('?')!=-1){

                var str1 = str.substring(str.indexOf('?')+1);

                var arr = str1.split('&') //["a=1", "b=2", "c=", "d=xxx", "e"]

     for(var i = 0; i < arr.length;i++){

                var arr1 = arr[i].split('=');

                json[arr1[0]] = arr1[1]

        }

}

console.log(json);

标签:crr,面试题,console,log,常见,arr,item,var,一些
来源: https://blog.csdn.net/qq_48294048/article/details/120571722