【JS红宝书学习】2在HTML中使用javaScript

1、script标签的元素

html5为script标签定义了6个属性:
async:可选。表示脚本立刻下载,但是不应妨碍页面中的其他操作。比如下载其他资源或等待加载其他脚本。只对外部脚本有效。
charset:可选。表示通过src属性指定的代码的字符集。因为大多数浏览器会选择忽略这个属性,所以不常用。
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本有效。
language:已废弃。应当使用 type来代替。
src:可选。表示包含要执行的外部文件。至于为什么是可选,因为script标签标签内部可以写嵌入型脚本。如果使用外部js文件,那src就是必需的。
type:**必选。**可以看作language的替代属性:表示编写代码使用的脚本语言的内容类型(也称MIME类型),默认值为text/javascript。
补充知识:MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型)
注意:
1、在script标签内任何地方都不能出现</script>标签,如果使用需要用反斜杠”\“。
2、<\script />是xhtml中的用法,html以及xml不允许这样使用,必须要正确关闭script标签。
3、使用src指向的文件,扩展名不是必须的,因为浏览器不会检查包含js文件的拓展名。
4、当script标签确定了使用外联的方式时,内部的脚本会被忽略掉。

2、script标签的位置

1、最传统的方式是放在head里面,但这样会明显的影响页面加载速度,所以一般将script标签放到body的底部。此时(不使用defer和async的时候)script会按照先后顺序执行,解析并执行完上一个script后再去解析执行下一个。
2、延迟脚本defer,准确来讲,defer脚本是在浏览器遇到</html>后再执行。html5里明确规定defer只对外部script有效,所以支持html5的浏览器会自动忽略给嵌入式script设置的defer属性,但IE4-IE7依然支持嵌入式的defer,所以最稳妥的方法还是将defer脚本放到页面/body底部。
3、异步脚本async。当浏览器遇到async脚本时,会立即下载脚本,但与defer不同的是,async不保证脚本按先后顺序执行。
4、当浏览器不支持script时,应当如何隐藏?(虽然这个问题在现代已经基本不存在了)

<script><!--
    console.log("support script");
//--></script>

当浏览器不支持script/被禁用script时,使用替代<\noscript>

<noscript>
	<p>本页面需要浏览器支持(启用)JavaScript。</P>
</noscript>

5、对于defer,浏览器会首先下载并解析,但是执行会延迟到整个html被解析结束,并且保证按先后顺序执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值