前端问题

1.typeof和instanceof区别

typeof一般用来判断变量属于哪个类型 返回值是字符串 number string function object Boolean undefined

对Arrary 和null等特殊对象返回值都是object 这也是它的局限性

instanceof 返回值是boolean  一般用来判断某变量是否是某个对象的实例

let arr = new Array();
alert(arr instanceof Array) //true
alert(arr instanceof object) //true

2.什么是跨域,解决跨域的方法?

因为浏览器有同源策略的问题,所以只要请求的url与要请求的页面地址的域名,协议,端口号不同即为此问题

解决方法:porxy代理   通过将请求发送个后台服务器,利用服务器发送请求,将请求结果返回给前端。ngxin代理

                  corx:现代浏览器支持跨域请求最常用的方式 后台人员在处理请求数据的时候,加上允许跨域的相关操作

                  jsonp:创建script,因为script引入的资源,可以直接在页面加载使用

3.闭包

定义:一个函数的返回值是另一个函数,此函数调用其父函数其他的变量,返回值函数在外部被使用,形成闭包

缺点:容易造成内存泄漏;使父函数内部变量的值改变

4.什么是垃圾回收机制及内存管理?

回收机制方式:定义:垃圾回收机制,执行环境负责管理代码执行过程中使用的没存

原理:垃圾收集器会定期找出那些不再使用的变量,然后释放内存。

垃圾回收策略:标记清除:当变量进入环境时,会被标记,当变量离开环境时,还是会被标记,一段时间,垃圾回收器会将过滤掉,环境中的变量和被标记的使用的环境变量,其他的都被回收掉。

引用计数:每被使用一次就增加一,一段时间后,引用为0的被回收掉

内存管理

什么时候出发垃圾回收:IE6的回收是根据内存分配量运行的,

                                       IE7根据内存分配量和程序占用内存的比例进行调整

5.什么是内存泄露,内存泄露的情况和如何解决

定义:内存泄漏是指一块内存,即不能使用,永不能回收,直至浏览进程结束

a.当页面元素被删除时,其绑定的事件没有被删除,此时需要手动删除绑定事件

b.闭包使用不当会形成内存泄漏,退出函数之前,将不使用的局部变量删除

6.原型链

function teacher(name){
            this.name=name;
}
teacher.prototype.sayName=function(){
        console.log('我的名字是'+this.name);
}

tea1 = new teacher('xiaoming');
tea1.sayName();   //我的名字是xiaoming


function student(name){
        this.name=name;
}

student.prototype = new teacher();

stu1 = neww student('xiaohong');

stu1.sayName(); //我的名字是xiaohong




7.call(),apply()改变this指向

function teacher(name,age){
    this.name = name;
    this.age = age;
    this.say = function(){
        alert('姓名'+ name + '年龄'+ 'age')
};
}


tea1 = new teacher('xiaoming',23);
tea1.say()    //姓名xiaoming年龄23


function student(){
   let args = arguments;
    teacher.call(this,args[0],args[1]);
    //teacher.apply(this,args);
}


stu1 = new student('xiaohong',22)
stu1.say()  //姓名xiaohong年龄22

 

 

 

               

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值