多图警告,图片内容不是重点,只是为了举证说明,不必细看,找重点关键词就可以。
动机说明
我在读《Vue.js 设计与实现》这本书的时候,看到了这样一段代码。
const set = new Set([1])
set.forEach(item => {
set.delete(1)
set.add(1)
console.log('遍历中')
})
书中说:“如果我们在浏览器中执行这段代码,就会发现它会无限执行下去。”并且还给出了原因和解决方案。
const set = new Set([1])
// 构造另外一个 Set 集合并遍历它
const newSet = new Set(set)
newSet.forEach(item => {
set.delete(1)
set.add(1)
console.log('遍历中')
})
我很好奇,如果我给第一段代码发给 AI 对话工具,AI 是否能发现其中的错误呢? 带着这个疑问我进行了下面的测试。
一点意外
智谱清言
Trae
ChatGPT
见风使舵
可以看到,智谱清言、Trae、ChatGPT 都给出了错误的回答。但是当我明确指出问题的时候,它们又都给出了正确的回答,甚至还给出了解决无限循环的方案。这里就以 Trae 的回答为例,这让我有种 AI 也会“见风使舵”的感觉。
BUT
就没有能一次性发现问题,并且给出解决方案的 AI 吗?有的!兄弟,有的!
DeepSeek
在经过了 60s 的长时间思考以后,DeepSeek 一次性就指出了这段代码的问题,并且给出了正确的解决方案。
总结
感谢你看到了这里。关于这次小实验,我想说一点感悟。
不要盲目相信AI
前端的大多数需求由于直观、可描述性强,在人工智能时代,只要我们能够表达的足够准确,AI 基本都可以帮我们生成我们想要的页面代码。
但是在一些 js api 使用避坑方面,AI 并不一定能够做到百分之百的准确。而且如果我们选择盲目相信 AI 的话,很有可能会学习到错误的知识。