
可迭代对象
Set是JavaScript中基于SameValueZero算法的唯一值集合,自动去重、O(1)查询,语义上强调“存在性”;WeakSet仅存对象且弱引用,适用于临时标记场景。
function*是声明生成器函数的语法糖,调用后返回可迭代的Generator对象,通过yield暂停并保留状态,next()唤醒并推进;普通函数立即执行且不可暂停。
Python遍历字符串最常用方式是for循环直接迭代字符;需索引时可用range(len(s))或更优雅的enumerate();其他方式包括列表推导式、while循环和反向遍历。
JavaScript迭代器是一套协议,要求对象具有返回{value,done}对象的next()方法;可迭代对象则需实现[Symbol.iterator]方法以返回迭代器。
生成器函数用function声明,调用返回迭代器而非执行函数体;需调用next()启动并逐次暂停于yield,yield可传值并保持上下文,yield委托可迭代对象,return()/throw()可...
Set构造函数可直接去重,但仅对原始值严格有效;对象等引用类型需通过id或JSON.stringify等手动实现唯一性判定,且要注意兼容性与深比较限制。
展开运算符...是语法糖,用于将可迭代对象“打散”为独立元素,支持数组拼接、对象合并、函数传参等,但仅浅拷贝且要求操作对象可迭代。
解构赋值是JavaScript中从数组或对象按结构匹配提取值并赋给变量的机制,支持默认值、重命名、嵌套及剩余语法,不改变原数据但引用类型修改仍影响原对象。
Python中和*用于拆包序列和字典,分别传递位置参数和关键字参数,是明确的参数传递机制而非语法糖,对编写灵活可复用代码至关重要。
WeakSet只能存储对象且不阻止垃圾回收,仅提供add()、delete()、has()方法,适用于对象身份标记等无需影响对象生命周期的场景。