【Java面试知识点详解】
在Java面试的第55天,我们关注的是JavaScript的基本概念和DOM操作,以及事件处理。以下是对这些主题的详细说明:
1. **DOM节点操作**:
- `appendChild(newNode)`:这个方法用于在指定节点的子节点列表末尾添加新的子节点`newNode`。它会把`newNode`作为父节点的最后一个孩子。
- `insertBefore(newNode, refNode)`:这个方法允许你在父节点的子节点列表中的`refNode`前面插入`newNode`。如果`refNode`不存在,`newNode`将被添加到子节点列表的末尾。
2. **Window对象的子对象**:
- `screen`对象:提供了关于客户端显示器的信息,如屏幕分辨率和颜色深度。
- `history`对象:存储了用户在浏览器窗口中访问过的URL历史。
- `location`对象:包含了当前URL的信息,可用于获取和更改URL。
- `navigator`对象:提供关于浏览器和操作系统的信息,常用于浏览器检测。
- `event`对象:在事件触发时产生,记录了事件发生时的相关信息,如鼠标位置、键盘状态和触发事件的对象。
3. **获取事件触发对象**:
- 在IE中,可以直接使用`event`关键字来获取事件对象。
- 在Firefox中,事件处理函数需要接收一个参数,即`event`对象,通过这个参数可以获取触发对象。
- 对象的获取在IE中使用`event.srcElement`,在Firefox中使用`event.target`。
4. **创建JavaScript对象的三种方式**:
- **实例化对象**:直接使用`Object`或自定义构造函数创建实例,并设置属性和方法。
- **构造函数**:定义一个构造函数,用于创建具有特定属性和方法的自定义对象。
- **JSON对象**:使用JSON格式的数据来创建对象,但JSON主要用于数据交换,而不是动态创建对象。
5. **代码解析**:
- `Person`函数是一个构造函数,用于创建`Person`类型的对象,`this.name`和`this.age`初始化对象属性,`this.introduceSelf = introFunc;`则是为对象添加方法。
- `introFunc`方法用于显示对象的`name`和`age`属性。
- `testClass`函数中,`var p1 = new Person("jerry", 20);`创建了一个`Person`对象实例`p1`,`alert`语句显示了对象的属性,`p1.introduceSelf();`调用对象的方法展示信息。
6. **HTML与JavaScript交互**:
- HTML代码中有一个按钮,点击后调用`addRow()`,用于向表格添加行。
- 表格中每一行都有一个删除按钮,点击后调用`delFunc(this)`,这里的`this`指的是触发事件的按钮元素。
在JavaScript中,理解DOM操作、事件处理和对象创建方式对于编写交互式网页至关重要。面试时,这些基本概念的掌握能够体现开发者对JavaScript的理解程度。