JavaScript——执行环境与对象
2023-12-30 05:40:46
JavaScript 的执行环境
JavaScript 是一种解释型语言,它通过解释器执行代码,而 JavaScript 的执行环境就是指 JavaScript 代码执行的上下文。
JavaScript 的执行环境主要包括:
-
全局对象:
全局对象是 JavaScript 中的一个特殊对象,它包含了所有全局变量和函数。在浏览器中,全局对象是window
对象,而在 Node.js 中,全局对象是global
对象。 -
作用域:
作用域是 JavaScript 中代码能够访问的变量和函数的集合。JavaScript 的作用域有两种:全局作用域和局部作用域。-
全局作用域:
全局作用域是 JavaScript 中最外层的作用域,它包含了所有全局变量和函数。 -
局部作用域:
局部作用域是 JavaScript 中函数内部的作用域,它包含了函数内部的变量和函数。
-
-
执行栈:
执行栈是 JavaScript 执行代码的内存区域。当 JavaScript 代码执行时,函数会被压入执行栈中,当函数执行完毕时,函数会被从执行栈中弹出。
JavaScript 的对象
JavaScript 中的对象是具有属性和方法的集合。属性是指对象的特性,而方法是指对象的行为。
JavaScript 中的对象可以分为两种:
-
原始对象:
原始对象是 JavaScript 中最基本的对象,包括数字、字符串、布尔值、null 和 undefined。 -
引用对象:
引用对象是 JavaScript 中可以存储其他对象的对象,包括数组、对象、函数等。
JavaScript 中的对象可以通过多种方式创建:
-
使用对象字面量:
const person = { name: 'John Doe', age: 30, occupation: 'Software Engineer', };
-
使用 new 运算符:
const person = new Person('John Doe', 30, 'Software Engineer');
-
使用工厂函数:
function createPerson(name, age, occupation) { return { name: name, age: age, occupation: occupation, }; } const person = createPerson('John Doe', 30, 'Software Engineer');
JavaScript 的对象访问
JavaScript 中的对象可以通过多种方式访问:
-
使用点运算符:
console.log(person.name); // John Doe
-
使用方括号运算符:
console.log(person['name']); // John Doe
-
使用变量:
const name = 'name'; console.log(person[name]); // John Doe
JavaScript 的对象操作
JavaScript 中的对象可以通过多种方式操作:
-
添加属性:
person.hobby = 'Coding';
-
删除属性:
delete person.hobby;
-
修改属性:
person.name = 'Jane Doe';
-
获取属性值:
const name = person.name;
-
调用方法:
person.sayHello();
JavaScript 的原型链
JavaScript 中的对象都具有原型链。原型链是 JavaScript 中的一种机制,它允许对象访问其原型对象的所有属性和方法。
原型链的原理如下:
- 当 JavaScript 创建一个对象时,它会将该对象的原型对象设置为其 proto 属性。
- 当 JavaScript 对象访问一个属性或方法时,如果该对象没有该属性或方法,JavaScript 会沿着原型链向上查找,直到找到该属性或方法。
原型链可以用来实现对象的继承。当 JavaScript 创建一个对象时,它可以将该对象的原型对象设置为另一个对象的原型对象,这样,新对象就可以访问另一个对象的所有属性和方法。
JavaScript 的构造函数
JavaScript 中的构造函数是用于创建对象的函数。构造函数的名称必须以大写字母开头。
构造函数可以接受参数,这些参数将被用于创建新的对象。
function Person(name, age, occupation) {
this.name = name;
this.age = age;
this.occupation = occupation;
}
const person = new Person('John Doe', 30, 'Software Engineer');
JavaScript 的 prototype 属性
JavaScript 中的 prototype 属性指向对象的原型对象。
console.log(person.prototype); // Person {}
原型对象包含了所有对象的共享属性和方法。
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
person.sayHello(); // Hello, my name is John Doe
总结
JavaScript 的执行环境和对象是 JavaScript 语言的核心概念。掌握这些概念对于理解 JavaScript 代码的执行机制和对象的操作至关重要。