技术咨询:非数组非字符串的数据类型及JS脚本相关疑问
嘿,让我一步步帮你理清这两个问题:
问题1:既不是数组也不是字符串的数据类型
在JavaScript中,除了数组(Array)和字符串(String),还有这些常见的数据类型:
- Number:整数、浮点数等数值类型,比如
123、3.14 - Boolean:只有
true和false两个值的布尔类型 - Null:表示“空值”的特殊类型,只有
null一个值 - Undefined:表示变量未被赋值时的状态,只有
undefined一个值 - Object:普通对象(注意数组是Object的特殊子类,但这里指非数组的普通对象),比如
{name: "Alice"} - Symbol:ES6新增的唯一标识符类型,用于创建唯一的属性键
- BigInt:用于表示超出Number范围的大整数,比如
123456789012345678901234567890n
问题2:关于JS脚本的变量类型与代码补全
先看变量n的类型:
var buttons= document.getElementsByTagName("button");
var n= buttons.length, counters=[];
document.getElementsByTagName("button")返回的是一个HTMLCollection(类数组对象),它的length属性是一个整数,所以变量n就是纯整数类型,完全不包含数组。你不用担心它同时是数组和整数,这两种类型是互斥的。
再看代码补全的问题:
我们需要把counters数组的所有元素初始化为0,这里应该用数组的fill()方法,也就是补全为counters.fill(0);,这个方法会把数组的所有元素替换成指定的值。
至于counters.items(0):首先,数组本身并没有items()方法——items()是HTMLCollection或NodeList这类类数组对象的方法,它的作用是根据索引获取对应元素,参数是单个索引值,不是用来填充数组的。所以这里不能用items(0),它完全不符合我们初始化数组的需求。
内容的提问来源于stack exchange,提问作者Ale17
相关产品推荐
相关产品推荐

