前言
本人是一位从事前端开发的工程师,前端虽然入门比较快,但是涉及的知识比较多比较杂。许多知识都是用到了才去了解他,虽然现在有像掘金这样的平台可以快速帮到你,但是百度远不及你从脑海中快速读取你已有的知识。正是由于在开发中遇到的这样的痛点,才让我下决心系统的把前端的知识重新学习一边。所以我借着平台的更文挑战活动,来分享我在学习和开发中的一些心得和经验。 为什么要从基础讲起?原因很简单,目前上到一流大厂到小公司,框架盛行。我有一个亲身体会,框架用的时间久了,并没有加深我们对核心基础的理解,反到是和真理渐行渐远。
JS基础
js基础我们会从开发的角度来重新回顾,而不是简单知识点的罗列。存在即是合理,结合使用场景才能给大家一个清晰的画面!
一、html中的javascript
<script type="text/javascript">
...
</script>
1、属性值的问题
其实该元素的属性值一共有六个,分别是async、src、type、charset、defer、language(早就废了) type 其中type要说一下,我们经常使用的值就是text/javascript,但是他其实还有其他值,比如text/ecmascript,不过不推荐。注意的是,服务器在传输js文件的时候经常用的type是appliction/x-javascaript。我们在开发的时候不写也是没有关系的,因为它默认就是text/javascirpt。 src 加载外部的文件,这里就不多介绍了,加载的时候页面处理会停滞。 async 异步加载外部js,这样做的话不会耽误页面处理,其实优化性能还有用的。注意:因为是异步的,所以可能会导致两个脚本之间执行的顺序发生改变。使用的时候最好小心些,尽量不要让两个脚本有顺序的牵连。 defer 这个属性只对外部文件有用,延迟到文档被完全解析和显示之后再执行。其实这里也可以直接将脚本放在body之后,这样先加载页面在执行脚本,性能会好很多,给用户体验感觉上页面出来的快了。
2、代码中千万注意不要出现</script>
因为浏览器遇见,他就会以为是结束的标签,所以要加上转义字符,看下图我在掘金编辑文本的时候当场遇见这个问题,没有加转义掘金的编辑器是无法解析的,我估计也是同样类型的问题。
3、</noscript>,这个东西像是做了一个兜底,让不支持脚本的浏览器展示内容
<noscript>
<span>你不支持js,你不行呀兄弟!</span>
</noscript>