① 报错:Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
at index.html:42:15
原因:script脚本写在body前面,标签元素还没有创建,就调用引用标签,故报错。
解决方法:把script放在body之后就ok。
② 用replace()替换字符串的时候,如果同一个字符串出现多次,都需要替换。替换几次就需要写几次replace()语句。
③ 在函数内重新声明变量,保证原变量没有被改变。
let storyText = " 今天气温 34 摄氏度,: inserta: 出去遛弯。当走到: insertb: 门前时,\
突然就: insertc:。人们都惊呆了,李雷全程目睹但并没有慌,\
因为: inserta:是一个 130 公斤的胖子,天气又辣么热。";
function result() {
let newStory = storyText;
//声明新变量有必要->保证每次运行函数都是生成一个新的随机笑话
let xItem = randomValueFromArray(insertX);
let yItem = randomValueFromArray(insertY);
let zItem = randomValueFromArray(insertZ);
newStory = newStory.replace(": inserta:", xItem);
newStory = newStory.replace(": inserta:", xItem);
//a字符串出现了两次,所以需要进行两次替换
newStory = newStory.replace(": insertb:", yItem);
newStory = newStory.replace(": insertc:", zItem);
...
}
④ 错误写法❌:
newStory.replace(": inserta:", xItem);
newStory.replace(": inserta:", xItem);
这样子虽然替换了,但是并没有被保存。