web前端面试题附答案015-script标签内有代码,又加了src脚本引入,会怎么样?

好烦恼,面试官老瞎问

一、这个问题谁注意过?

        这个问题大家每天都会用,script标签,要么是内部写代码,vue组件里每个不也都有script标签嘛,数据依赖,methods,这些都会在里面,但如果是要外部引入呢,就是一个无内部内容的标签了。这很简单嘛

<html>
......
<script>
    var age = 15;
    console.log(age);
</script>

<!-- 或者是这样 -->
<script src="age.js"></script>
......
</html>

        大家见惯不惯,因为这是国际标准,不管你去了下个团队,还是被外拍到了叙利亚,大家都是这么写。那么你有没有想过,如果像下面这段代码会怎么样呢?

<script src="age.js">
    var age = 15;
    console.log(age);
</script>

二、先看看结果

age.js里:

var age = 16;
console.log(age);

结果输出了16,很明显,执行了外部脚本,而非内部脚本。那么症结点在于这个src属性吗?他咋就比内部代码优先级更高了?

三、src属性

这个标签的src属性呢,是开发者指定外部脚本或者某些文件的路径(注意可以每次不只请求一个哦),浏览器会根据src属性值请求外部的文件,然后将外部文件的内容插入script标签内部,结果会覆盖原本script标签之间的内容,所以不管你内部写了多少代码,都会被覆盖掉。而且你请求<script src="age.txt" ></script>都是可以的。但age.txt里最好是js内容,只是文本类型不限制而已。

四、是不是又有了优化思路

既然浏览器的默认特性是将外部的js脚本,最终还是要下载,覆盖到内部,解析,执行,那么很多时候,如果你认为一些不必要放到外部去请求的js文件,是不是写到script内部,更直接的写出来会更优呢?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经海路大白狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值