JavaScript基本数据类型和对象类型归档问题解析
基本数据类型
在JavaScript中,基本数据类型分为以下几种:
- Number:数字类型,包括整数和浮点数。
- String:字符串类型。
- Boolean:布尔类型,包括true和false。
- Undefined: 值为undefined的类型。
- Null:值为null的类型。
- Symbol:ES6新增的数据类型,表示一个独一无二的值。
这些基本数据类型占用空间较小,且按值进行访问。定义时一般使用直接量的形式。
示例:
let number = 10; // Number类型
let string = 'hello world'; // String类型
let bool = true; // Boolean类型
let undef = undefined; // Undefined类型
let nul = null; // Null类型
let symbol = Symbol('test'); // Symbol类型
对象类型
在JavaScript中,除了以上的基本数据类型外,其他所有类型都是对象类型。对象类型是指由若干无序属性构成的集合。对象类型存储在堆内存中,通过引用来访问,因此其大小不固定。
JavaScript的内置对象有以下几种:
- Object:通常也称为普通对象,是其他对象的基础。
- Array:数组对象,用于存储有序的元素集合。
- Function:函数对象,用于封装一段可执行的代码。
- Date:日期对象,用于表示一个日期或时间。
- RegExp:正则表达式对象,用于匹配文本中的模式。
- Math:数学对象,用于执行数学运算。
示例:
let obj = {name: '张三', age: 18}; // Object类型
let arr = ['apple', 'banana', 'orange']; // Array类型
let func = function(){ console.log('hello'); } // Function类型
let date = new Date(); // Date类型
let reg = /\d+/g; // RegExp类型
let math = Math; // Math类型
归档问题解析
在JavaScript中,基本数据类型和对象类型之间存在着不同的赋值方式。
基本数据类型的赋值是按值传递
let a = 10;
let b = a;
a = 20;
// 此时b仍然是10
在上述代码中,b变量只是将a的值复制了一份,而与a本身没有关联,因此对a的修改并不会影响b变量的值。
对象类型的赋值是按引用传递
let obj1 = {a: 10};
let obj2 = obj1;
obj1.a = 20;
// obj2.a此时也是20
在上述代码中,obj2变量并没有直接复制obj1对象的值,而是复制了obj1对象的引用。因此,对obj1对象的修改,也会影响到obj2对象。
示例说明
示例1:基本数据类型的赋值
let a = 10;
let b = a;
a = 20;
console.log(b); // 输出结果为10
在该示例中,变量b只是复制了a的值,并没有和a进行直接关联,因此b的值不会受到a变量的修改影响。
示例2:对象类型的赋值
let obj1 = {a: 10};
let obj2 = obj1;
obj1.a = 20;
console.log(obj2.a); // 输出结果为20
在该示例中,变量obj2复制了obj1对象的引用,因此对obj1对象的修改,也会影响到obj2对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript基本数据类型和对象类型归档问题解析 - Python技术站