前端—每天5道面试题(5)

1、this对象的理解

  this总是指向直接调用者(而非简介调用者)

  如果有new关键字,this指向new出来的那个对象

  在事件中,this指向触发这个事件对象,特殊的是,IE中的attachEvent中的this总是指向全局对象window

 

2、eval是做什么的

  他的功能是把对应的字符串解析成js代码并且运行

  应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)

  由JSON字符串转换为JSON对象的时候可以用eval,var obj = eval(‘(‘+ str +‘)‘)

 

3、dom怎么样添加、移除、移动、复制、创建和查找节点

  createDocumentFragment() // 创建一个dom片段

  createElement()  // 创建一个具体的元素

  createTextNode() // 创建一个文本节点

  添加 移除 替换 插入 

  appendChild()

  removeChild()

  replaceChild()

  insertBefore() // 在已有的子节点前插入一个新的子节点

  查找

  getElementByTagName() 通过标签名称

  getElementByName() 通过元素的name属性值

  getElementById() 通过id 唯一性

 

4、null和undefined的区别

  null是一个表示‘无’的对象,转换为数值为0,undefined是一个表示‘无’的原始值,转为数值时为NaN

  undefined

  变量声明了,但是没有赋值时,就等于undefined

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

  对象没有赋值的属性,该属性的值为undefined

  null

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

  作为原型链的终点

 

5、new操作符具体干了什么

  创建一个空对象,并且this变量引用该对象,同事还继承了该函数的原型

  属性和方法被加到this引用的对象中

  新创建的对象由this所引用,并且最后隐士的返回this

 

前端—每天5道面试题(5)

上一篇:贪吃蛇


下一篇:JDK环境配置