JavaScript高级程序设计笔记
第一章 JavaScript简介
- JavaScript历史回顾
- JavaScript是什么
- JavaScript与ECMAScript的关系
- JavaScript的不同版本
1.2 . JavaScript实现
- ECMAScript ,由ECMA-262定义,提供核心语言功能
- 文档对象模型(DOM),提供访问和操作网页的方法和接口
- 浏览器对象模型(BOM),提供与浏览器交互的方法和接口
第二章 在HTML中使用JavaScript
- 使用script元素
- 嵌入脚本与外部脚本
- 文档模式对JavaScript的影响
- 考虑禁用JavaScript的场景
2.1 script元素
向html中插入javascript的主要方法是script元素
-
标签的位置放在页面的head中,最好的做法是使用外部文件来包含javascript代码,1,利于维护 2,可缓存
<!-- 嵌入脚本 --> <script type="text/javascript"></script> <!-- 外部脚本 --> <script type="text/javascript src="/javascript/index.js"></script>
延迟脚本defer:页面结构加载完毕后在运行
<script type="text/javascript" defer="defer"></script>
-
异步脚本async 只适用于外部脚本,告诉浏览器立即下载,不按照指定先后执行:
<script type="text/javascript" async src="example1.js"></script> <script type="text/javascript" async src="example2.js"></script>
-
在XHTML(可扩展超文本标记语言) 中的用法,CData是片段是文档中的一个特殊区域,这个区域可以包含不需要解析的任意格式文本内容
<script type="text/javascript"><![CDATA[ function compare(a,b){ if(a < b){ alert("A is less than B"); } elseif(a > b){ alert("A is greater than B"); } else { alert("A is equal to B"); } } ]]></script>
script元素内的代码将被从上到下依次解释。
代码的任何位置不能包含script
第三章 基本概念
3.1 语法
语法借鉴了C(java和perl)的语法;
区分大小写,函数不能使用typeof,typeof是关键字;
-
标识符之变量,函数,属性的名字,或者函数的参数;
- 第一个字符必须是字母,下划线,或者$ ,其他字符可以是字母,下划线,美元符号和数字;
ECMAScript 标识符采用驼峰大小写格式,第一个小写,剩下的每个单词首字母大写;
注释
单行注释 // 多行注释 /* */
-
严格模式:ES5引入了严格模式, 'use strict' 是一个编译提示,告诉javascript切换到严格模式
function doSomething(){ 'use strict' }
语句 es中语句以分号(;)结尾,没有分号的解析器确定结尾,不推荐;
3.2 关键字和保留字
关键字不能做标识符,ES 全部关键字如下
break do instanceof typeof case else new var catch finally return void continue for switch while debugger function fhis with default if throw delete in try
ECMA-262 描述了一组不能用作标识符的保留字
abstract enum int short boolean export interface static byte extends log super char final native synchronized class float package throws const goto private transient debugger implements proetected volatile double import public
3.3 变量
-
ECMAScript变量是松散类型的,可以用来存储任何类型的数据;定义变量使用var操作符。
var username = "tank"; // 推荐写法 username = "tank"; // 不推荐这么写
-
数据类型,Undefind,Null,Boolean,String,Number, Object(本质上是由一组无序名值对组成的)
- typeof操作符,检测数据类型
- undefind:这个值未定义
- boolean:这个值是布尔值
- string:这个值是字符串
- number:这个值是数字
- object:这个值是对象或者null
- function:这个值是函数
- typeof操作符,检测数据类型
-
boolean值,这些转换规则对于理解控制语句自动执行Boolean转换非常重要;
数据类型 转化为true的值 转换为false的值 Booean true false String 任何非空字符串 空字符 Number 任何非0数字值(包括无穷大) 0和NaN object 任何对象 null Undefind n/a(not applicable 的缩写,意思是不适用) nudefind Number类型 ,使用IEEE754格式来表示整数和浮点数值;
String类型用户已表示由零或多个16位Unicode字符组成的字符序列,即字符串,字符串可以有双引号或单引号表示;
-
Object 类型,ECMAScript中的对象是一组数据和功能的集合。对象可以通过new后面跟要创建的类型来创建。
var ob = new Object();