前端面试题十三@杨志刚

new操作符干了什么

new共经过了4几个阶段

1、创建一个空对象

varobj=new Object();

2、设置原型链

obj.__proto__= Func.prototype;

3、让Func中的this指向obj,并执行Func的函数体。

var result =Func.call(obj);

4、判断Func的返回值类型:

如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object"){

  func=result;

}

else{

    func=obj;;

}

1,创建一个空的对象  var obj=new Object();

2,让空对象的原型属性指向原型链,设置原型链 obj._proto_=Func.prototype;

3,让构造函数的this指向obj,并执行函数体 var result=Func.call(obj);

4,判断返回类型,如果是值就返回这个obj,如果是引用类型,返回这个引用对象。

null和undefined的区别

1. 相同点

  if 判断语句中,两者都会被转换为false

2. 不同点

Number转换的值不同,Number(null)输出为0, Number(undefined)输出为NaN

null表示一个值被定义了,但是这个值是空值

作为函数的参数,表示函数的参数不是对象

作为对象原型链的终点 (Object.getPrototypeOf(Object.prototype))

定义一个值为null是合理的,但定义为undefined不合理(var name = null)

undefined表示缺少值,即此处应该有值,但是还没有定义

变量被声明了还没有赋值,就为undefined

调用函数时应该提供的参数还没有提供,该参数就等于undefined

对象没有赋值的属性,该属性的值就等于undefined

函数没有返回值,默认返回undefined

eval是做什么的

把字符串参数解析成JS代码并运行,并返回执行的结果;

例如:

eval("2+3");//执行加运算,并返回运算值。

        eval("varage=10");//声明一个age变量

iframe的优缺点

iframe是一种框架,也是一种很常见的网页嵌入方式

iframe的优点:

1.iframe能够原封不动的把嵌入的网页展现出来。

2.如果有多个网页引用iframe,那么你只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷。

3.网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的可重用。

4.如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由iframe来解决。

iframe的缺点:

1.会产生很多页面,不容易管理。

2.iframe框架结构有时会让人感到迷惑,如果框架个数多的话,可能会出现上下、左右滚动条,会分散访问者的注意力,用户体验度差。

3.代码复杂,无法被一些搜索引擎索引到,这一点很关键,现在的搜索引擎爬虫还不能很好的处理iframe中的内容,所以使用iframe会不利于搜索引擎优化。

4.很多的移动设备(PDA 手机)无法完全显示框架,设备兼容性差。

5.iframe框架页面会增加服务器的http请求,对于大型网站是不可取的。

分析了这么多,现在基本上都是用Ajax来代替iframe,所以iframe已经渐渐的退出了前端开发

你可能感兴趣的:(前端面试题十三@杨志刚)