0
点赞
收藏
分享

微信扫一扫

js基础知识(对象)

月半小夜曲_ 2022-01-16 阅读 121

一.Object对象

Object类型,我们也称为一个对象。是JavaScript中的引用数据类型。

它是一种复合值,它将很多值聚合到一起,可以通过名字访问这些值。

对象也可以看做是属性的无序集合,每个属性都是一个名/值对。

对象除了可以创建自有属性,还可以通过从一个名为原型的对象那里继承属性。

除了字符串、数字、true、false、null和undefined之外,JS中的值 都是对象。

创建对象有两种方式:
//第一种:
var person = new Object();
person.name = "孙悟空";
person.age = 18;
//第二种:
var person = {
name:"孙悟空",
age:18};

二.基本数据类型

JS中的变量可能包含两种不同数据类型的值:基本数据类型和引用数据类型。

JS中一共有5种基本数据类型:String、Number、 Boolean、Undefined、Null。

基本数据类型的值是无法修改的,是不可变的。

基本数据类型的比较是值的比较,也就是只要两个变量的值相等,我们就认为这两个变量相等。

三.引用数据类型

引用类型的值是保存在内存中的对象。

当一个变量是一个对象时,实际上变量中保存的并不是 对象本身,而是对象的引用。

当从一个变量向另一个变量复制引用类型的值时,会将 对象的引用复制到变量中,并不是创建一个新的对象。

这时,两个变量指向的是同一个对象。因此,改变其中 一个变量会影响另一个。

四.内存存储

我们在声明一个变量时实际上就是在栈内存中创建了一个空间 用来保存变量。

如果是基本类型则在栈内存中直接保存,

如果是引用类型则会在堆内存中保存,变量中保存的实际上对

象在堆内存中的地址。

 

五.数组

数组也是对象的一种。

创建数组:

var array = [1,44,33];

六.函数

首先明确一点函数也是一个对象,所以函数也是在

堆内存中保存的。

函数声明比较特殊,需要使用function关键字声明。

var sum = function(a,b){return a+b};

//eg:
function sum(a,b){
return a+b;
}

JS中的所有的参数传递都是按值传递的。 也就是说把函数外部的值赋值给函数内部的参数,就和把值从一个变量赋值给另一 个变量是一样的。

函数内部属性:

在函数内部,有两个特殊的对象:

arguments

该对象实际上是一个数组,用于保存函数的参数。

同时该对象还有一个属性callee来表示当前函数。

this

this 引用的是一个对象。对于最外层代码与函数内部的情况,其 引用目标是不同的。

此外,即使在函数内部,根据函数调用方式的不同,引用对象也 会有所不同。需要注意的是,this 引用会根据代码的上下文语境 自动改变其引用对象。

七.原型继承

• JS是一门面向对象的语言,而且它还是一个基于原型的面向对象的语言。

所谓的原型实际上指的是,在构造函数中存在着一个名为原型 的(prototype)对象,这个对象中保存着一些属性,凡是通过该构造函数创建的对象都可以访问存在于原型中的属性。

八.闭包

•  闭包是JS一个非常重要的特性,这意味着 当前作用域总是能够访问外部作用域中的 变量。因为函数是JS中唯一拥有自身作用域的结构,因此闭包的创建依赖于函数。

•   也可以将闭包的特征理解为,其相关的局部变量在函数调用结束之后将会继续存在。

举报

相关推荐

0 条评论