JavaScript基础知识
1. 特点
- 基于对象:程序内部已经为用户提供了若干个对象,用户直接使用这些对象的属性和方法就可以了
- 事件驱动:通过大量的事件进行代码设计
- 弱类型:没有强类型数据
- 具有相对的安全性能:不能读取计算机本地文件
- 解释型脚本语言(由解释器读取代码,并将其转换成目标代码,再由计算机运行)
- 针对编译型语言:写好源代码,编译成目标代码,称之为编译语言
2. script标签
<script async charset="UTF-8" defer language src type></script>
async: 立即下载脚本,但不妨碍页面中其他操作(只对外部脚本文件有效)
defer:表示脚本可以延迟到文档完全被解析和显示之后再执行(只对外部脚本文件有效)
这个布尔属性被设定用来通知浏览器该脚本将在文档完成解析后,触发 DOMContentLoaded 事件前执行
src:外部脚本文件地址
type:可选
text/javascript: 默认
text/ecmascript: 不推荐
application/javascript
module:JavaScript模块(ES6)
language:已废弃
charset:大多数浏览器会忽略,不推荐使用
3. 三种方式
-
内嵌式
<button onclick="fun">点击我</button>
-
内联式
<script> console.log('hello world'); </script>
-
外联式
<script src="index.js"></script>
注意:
1. 内联式和外联式不要混合使用
2. JS代码中不要出现'</script>',否则会认为提前结束,导致错误
3. src引入的 .js 扩展名不是必须的,但是必须保证服务器返回正确的MIME类型
4. 只要不存在defer和async,浏览器会同步加载JS文件,并一次解析(因此JS一般放在body末尾,防止阻塞页面渲染)
5. 多个defer脚本的时候,不一定按顺序加载(加载顺序不可控)
4. 基础
-
注释
// 单行注释
/* * 多行注释 */
-
严格模式
ECMAScript 5引入了严格模式(strict mode),定义了一种不同的解析与执行模型,处理一些不确定的行为,对某些额不安全操作抛出错误。
"use strict"
-
分号
JavaScript不强制语句末尾分号,可加可不加。
在现在开发中,前端有了Node辅助(Grunt,Gulp,Webpack等工具),JS代码进行压缩,自动添加分号,所以语句末尾是否增加分号根据团队习惯就行
5. 不支持JavaScript特殊表现
不支持script元素的浏览器
<script><!--
JS代码
// --></script>
不支持或者未开启script脚本给提示
<noscript>
您的浏览器不支持(未启用)Javascript!!!
</noscript>
网友评论