(一)前言
一、
一个完整的javascript应该由下列三个不同的部分组成
核心,文档对象类型,浏览器对象类型ECMAScript,DOM,BOM
提供核心的语言功能,提供访问和操作网页内容的方法和接口,提供与浏览器交互的方法和接口
DOM是针对XML但经过扩展用于HTML的应用程序编程接口
1 | <html> |
借助这些DOM提供的API,开发人员可以轻松的删除,添加,替换和修改
开发人员使用BOM可以可以控制浏览器以外的部分
二、
Script的6个属性
- async:立即下载脚本,且不影响其他页面的操作
- Charset:设置字符集,表示通过src属性指定的代码的字符集
- Defer:对外部脚本文件有效,表示脚本可以延迟到文档解析完毕之后再执行
- Language:(废弃)设置编写代码使用语言,JavaScript,JavaScript1.2,VBScript
- Src:表示包含要执行代码的外部文件
- Type:language的替代,表示编写代码使用的脚本语言的内容类型(也称MIME:多用于指定一些客户端定义的文件名,以及一些媒体文件的打开方式)
引入JavaScript代码的方式:
- 1.嵌入式:
<script type="text/javascript"></script>
a)text/javascript
是默人的类型,可以省略
b)Type类型:text/javascript,text/ecmascript,application/x-javascript,application/javascript,application/ecmascript
- 2.链入式:
<script type="text/javascript" src="example.js"></script>
a)XHML中,使用单标签,HTML中要使用<script></script>
b)链入文件的时候,浏览器不会 检查.js扩展名,但是为了服务更准确的响应MIME类型,建议写上相应的后缀 - 3.无论如何包含代码,只要没有
defer
和async
,浏览器会顺序执行<script>
三、
1.标签的位置
传统是将<script>
包含在<head>
里面,但是这样的会容易造成页面加载延迟,所以建议将<script>
代码放置于</body>
之前,这样就可以先加载页面,而后加载script代码,给用户带来良好额体验
2.脚本延迟
a)Defer
可以实现延迟脚本到页面加载完毕再执行的效果,相当于告诉浏览器先下载,但是延迟执行<script type="text/javascript" src="example.js" defer="defer"></script>
b)但是现实中,延迟脚本不一定会按照顺序执行,也不一定会在DOMContentLoaded
事件触发前执行,所以,建议只包含一个延迟脚本
c)Defer
只适用于外部脚本文件
3.异步脚本
a)Async
属性,只适用于外部文件,目的是不让页面等待脚本加载完毕再执行
4.在XHTML中的js
对于严格的XHML
来说,在HTML
中的代码一般是不能再XHML中正确运行的,相对简洁规范的解决方法就是,使用注释的AData
片段
1 | <script type="text/javascript"> |
四、
1.使用文档类型
a)默认是混杂模式,但是不建议使用
b)建议使用标准模式和准标准模式
标准模式
1 | HTML 4.01 Strict<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
五、
1 | <noscript>可以在浏览器不支持或者脚本禁止的情况下显示标签里面的内容,可以作为友好提示选项使用 |
(二)javascript的基本概念
- 1.ECMAScript是严格区分大小写的,就是说,你的example和你的Example是完全不一样的两- 个变量
- 2.注意标识符写法,ECMAScript一般采用驼峰式的写法,例如:firstSecond
- 3.使用编译指示,”use strict”; 告诉JS引擎切换到严格模式
- 4.建议在结束语句末尾使用分号,可以减少错误的发生,利于压缩
- 5.建议使用代码块,即使只有一条语句
二、
变量:ECMAScript的变量是松散类型的,可以保存任何类型的数据
1.用var定义的变量是局部变量
1 | <script> |
正确写法:省略var使a成为全局变量
1 | function test(){ |
2.数据类型
1 | a)五种基本数据类型,一种复杂数据类型 |
- 一、Number
1 | alert(Number(null));//0 |
- 二、parseInt
1 | alert(parseInt("122jkdjh"));//122 |
- 三、parseFloat
1 | alert(parseFloat("122jkdjh"));//122 |
3.object类型
js的对象实际就是一组数据和功能的集合,创建对象:var obj=new object()
;
**object的实例具有以下的属性和方法**
a) construct:用于保存创建当前对象的函数,即构造函数
b) hasOwnProperty(propertyName):用于检查给定的属性在当前的实例中是否存在
c) isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
d) toLocaleString();返回对象的字符串表示
1 | 举个例子: |
所有对象都具有这些属性和方法