- 原型链:JavaScript 中的每个对象都从原型继承属性和方法。
function Person() {
}
 
Person.prototype.name = 'John';
 
var person1 = new Person();
console.log(person1.name); // 输出 'John'
 
var person2 = new Person();
person2.name = 'Alice';
console.log(person2.name); // 输出 'Alice',改变了实例属性后,不再访问原型链上的name属性
- 改变this指向:可以使用call(), apply()或bind()方法改变函数内的this指向。
function greet() {
  console.log('Hello, ' + this.name);
}
 
var user = {
  name: 'Alice'
};
 
greet.call(user); // 输出 'Hello, Alice'
- setTimeout和setInterval的区别: - setTimeout: 在指定的毫秒数后执行函数或者表达式一次。
- setInterval: 按照指定的毫秒数不停地重复执行某个函数或表达式。
 
function hello() {
  console.log('Hello');
}
 
// 使用setTimeout 1秒后执行一次hello函数
setTimeout(hello, 1000);
 
// 使用setInterval 每2秒执行一次hello函数,可以用clearInterval停止
var intervalId = setInterval(hello, 2000);
clearInterval(intervalId);
- JavaScript 入口函数与 jQuery 入口函数: - JavaScript 入口函数:在DOM文档结构解析完成后执行,可以确保所有DOM元素都可以操作。
 
document.addEventListener('DOMContentLoaded', function() {
  // DOM完全加载和解析完成后执行的代码
});
- jQuery 入口函数:确保DOM完全加载并可以操作,包括所有的图片等媒体文件。
$(document).ready(function() {
  // DOM结构加载完成后执行的代码
});
 
// 或者简写形式
$(function() {
  // DOM结构加载完成后执行的代码
});
jQuery 入口函数是等待文档结构解析完成后执行,而JavaScript的原生方法等待所有文件加载完成,包括图片等媒体内容。