Js-Day1

文章讲述了JavaScript中遇到的三个问题:1)在DOM未加载时使用`addEventListener`导致的`UncaughtTypeError`,解决方案是将脚本置于`body`标签后;2)使用`replace()`替换字符串时,若需多次替换同一字符串则需多次调用;3)在函数内部重新声明变量以确保不改变原变量。示例代码展示了如何处理字符串模板并正确替换多个实例。
摘要由CSDN通过智能技术生成

①  报错: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);

这样子虽然替换了,但是并没有被保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值