核心(ECMAScript)
,文档对象模型(DOM)
,浏览器对象模型(BOM)
js的三种调用方式javascript
<script> init(); </script> <script type="text/javascript" src="main.js"></script> <input type="button" onclick="javascript:alert('test')">
思考: 比较这几种方式的优劣,效率上有什么差别性?html
<script src="" async/defer></script> <!--html5 新属性-->
思考: 用法,范围,比较和defer的区别html5
async,表示当前脚本没必要等待其余脚本,也没必要阻塞文档呈现,不能保证异步脚本按照它们在页面中出现的顺序执行
defer,能够让脚本在文档呈现后再执行,延迟脚本老是按照它们的顺序执行的。java
< noscript>元素,当浏览器不支持javascript脚本浏览器
ECMAScript有以下5中基本数据结构数据结构
Undefined
Boolean
Null
Number
String
异步
typeof 操做符,用来检测给定变量的数据类型async
var message; // var age alert(typeof message); alert(typeof age);
结果都是undefined,message 声明没初始化,使用var生命变量但未对其进行初始化的,默认undefined;age没有进行声明,传递给alert()函数会致使一个错误,对于未声明变量这么操做没什么意义好比delete,也是返回undefined。因此函数
对变量进行变量声明能经过typeof,辨别变量没有被初始化而不是没声明
- Null -null 表示空对象指针 因此typeof 返回object
通常咱们在声明一个对象变量时候,应该让变量保存null,这样经过typeof 即可以知道,能够区分null和undefined
- Boolean - boolean 只有true/false,Boolean() 转换其余数据类型 为true/false
- Number
1. 对于float数,为何0.1+0.2 != 0.3?
2. NaN(Not a Number)的设计初衷,表示一个本该返回数字却没返回数字的状况,好比1/0
3. 数值转换 Number() parseInt() parseFloat()设计