美文网首页
前端面试题及答案2

前端面试题及答案2

作者: sunflower_07 | 来源:发表于2018-06-12 09:49 被阅读0次

1.  == 和=== 的区别?

        == 是判断值是否相等

        === 是判断值和类型是否相等

代码

结果: 

结果

2. 用js去除字符串空格

    一、使用正则

        1. 去除所有空格    

代码 结果

2. 去除两头空格

代码 结果

去除所有空格: str = str.replace(/\s*/g,""); 

去除两头空格: str = str.replace(/^\s*|\s*$/g,"");

去除左空格: str = str.replace( /^\s*/, “”);

去除右空格: str = str.replace(/(\s*$)/g, "");

二、使用str.trim()方法

缺点:     但是无法去除中间空格。

var str = '  li si   ';

var str2 = str.trim();

console.log(str2);

结果

同理,str.trimLeft(),str.trimRight()分别用于去除字符串左右空格。

三、使用jquery,$.trim(str)方法

$.trim(str)缺点:无法去除中间的空格.

                var  str ="     li   si     ";

                var  str2 = $.trim(str);

                console.log(str2); 

    结果 :// li    si

3 .  你如何获取浏览器URL中查询字符串中的参数?

var a = "http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23'";

var arg = a.split('?')

var argData1 = arg[1].split('&');

var obj = {};

argData1.forEach(function(item){

var argData1Item = item.split('=');

obj[argData1Item[0]] = argData1Item[1];

})

console.log(obj);

结果

四. 定时

代码块

五 、什么是跨域?

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。存在跨域的情况:

网络协议不同,如http协议访问https协议。

端口不同,如80端口访问8080端口。

域名不同,如qianduanblog.com访问baidu.com。

子域名不同,如abc.qianduanblog.com访问def.qianduanblog.com。

域名和域名对应ip,如www.a.com访问20.205.28.90.

六 、谈谈垃圾回收机制方式及内存管理

1、定义和用法:垃圾回收机制(GC:Garbage Collection),执行环境负责管理代码执行过程中使用的内存。

2、原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行。

3、实例如下:

function fn1() {

    varobj = {name:'hanzichi', age:10};

}

function fn2() {

    varobj = {name:'hanzichi', age:10};

  return obj;

}vara = fn1();varb = fn2();

fn1中定义的obj为局部变量,而当调用结束后,出了fn1的环境,那么该块内存会被js引擎中的垃圾回收器自动释放;在fn2被调用的过程中,返回的对象被全局变量b所指向,所以该块内存并不会被释放。

 4、垃圾回收策略:标记清除(较为常用)和引用计数。

标记清除:

  定义和用法:当变量进入环境时,将变量标记"进入环境",当变量离开环境时,标记为:"离开环境"。某一个时刻,垃圾回收器会过滤掉环境中的变量,以及被环境变量引用的变量,剩下的就是被视为准备回收的变量。

  到目前为止,IE、Firefox、Opera、Chrome、Safari的js实现使用的都是标记清除的垃圾回收策略或类似的策略,只不过垃圾收集的时间间隔互不相同。

引用计数:

  定义和用法:引用计数是跟踪记录每个值被引用的次数。

  基本原理:就是变量的引用次数,被引用一次则加1,当这个引用计数为0时,被视为准备回收的对象。

 内存管理

1、什么时候触发垃圾回收?

垃圾回收器周期性运行,如果分配的内存非常多,那么回收工作也会很艰巨,确定垃圾回收时间间隔就变成了一个值得思考的问题。

IE6的垃圾回收是根据内存分配量运行的,当环境中的变量,对象,字符串达到一定数量时触发垃圾回收。垃圾回收器一直处于工作状态,严重影响浏览器性能。

IE7中,垃圾回收器会根据内存分配量与程序占用内存的比例进行动态调整,开始回收工作。

2、合理的GC方案:(1)、遍历所有可访问的对象; (2)、回收已不可访问的对象。

3、GC缺陷:(1)、停止响应其他操作;

4、GC优化策略:(1)、分代回收(Generation GC);(2)、增量GC

相关文章

网友评论

      本文标题:前端面试题及答案2

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