1. JS的组成:
a) ECMAScript 是什么:担当的是一个翻译的角色;是一个解释器;帮助计算机来读懂我们写的程序;实现+-*/, 定义变量;几乎没有兼容性问题;
b) DOM: 文档对象模型;文档指的就是网页;把网页变成一个JS可以操作的对象;给了JS可以操作页面元素的能力;document;有一些兼容性问题;
c) BOM:浏览器对象模型;给了JS操作浏览器的能力;window;几乎不兼容;
2. 变量类型:
a) 检测变量类型: typeof
b) 类型:number, string, boolean, object, function, undefined,
c) 变量是一个杯子,它的类型是由它里面存放的东西决定的;
d) Undefined类型出现:1是真的没有定义, 2是虽然定义了,但没有赋值;
e) Object是什么:对象是一个复合类型,它是由一组基本类型组成的;如:div,它是一个对象,它有id,width等特性,它的id是string的,width是number的;
f) 基本类型与引用类型:
3. 变量类型转换:
a) parseInt(); 从字符串中提取数字;
b) NaN; not a number;
c) NaN 和任何数计算 都是NaN;
d) NaN 不与任何值相等,包括它自身;要比较需要使用方法isNaN();
e) 显性类型转换:
i. parseInt()/ parseFloat();
ii. NaN 的意义和检测:
1. 意义:not a number;
2. 检测:isNaN();
f) 隐式类型转换:
i. "==" ,就是隐式转换,它会先把两边的东西转成一样的类型,然后再进行比较;
ii. 减法、乘法、除法 也会进行自发的隐式转换;只有加号不可以;
4. 变量作用域与闭包:
a) 作用域:就是变量能够起作用的范围;
b) 局部变量:定义在一个函数里,只能在这个函数里用;
c) 全局变量: 不定义在任何一个函数里,可以在任何地方去用;
d) 闭包:是另一种作用域;子函数可以使用父函数的局部变量;
5. 命名规范:
a) 匈牙利命名法:
i. 有类型前缀;
ii. 首字母大写;
6. 运算符:
a) 算术: 加减乘除、取模(求余数%);
b) 赋值:= , +=,
c) 关系: <</span>, >, <=, >=, ==, ===,!=, !==
d) 逻辑: && 与, ||或,!取反;
e) 运算符优先级:();
7. 程序流程控制:
a) 判读: if ,switch,? :
b) 循环: while, for
c) 跳出: break(终止整个循环), continue(终止本次循环,继续下次循环;只跳过当次;)
d) 什么是真,什么是假:
i. 真: true, 非0数字,非空字符串包括空格,非空对象
ii. 假: false, 数字0,空字符串,空对象null, undefined,
8. Json:
a) 专门为JS诞生的一种数据格式;(JavaScript Object Notation)
b) JS 对象标记语言;
c) JS 和数组的关系;
d) JS的遍历: for... in
9. 函数返回值:
a) 就是函数的执行结果;
b) 可以没有return, 它会返回一个undefined;
10.函数传参:
a) arguments : 可变参, 存放所有的参数
b) 封装CSS函数:利用argument长度判断,同时支持获取与设置;
c) 如何获取非行间的样式:
i. currentStyle : 获取计算后的样式 (IE下)
ii. getComputedStyle : (FF下)
iii. 可以获取默认样式;
iv. 对于复合样式:如background无法获取;
11.数组:
a) 数组的length属性可以赋值;可以用length=0清空数组;
b) 添加与删除元素:
i. push() 和 pop() – 尾部添、删
ii. unshift() 和 shift() – 头部添、删
c) 排序:
i. sort():让sort排序数字,使用比较函数;
d) 转换类:
i. concat() : 连接两个数组,生成一个新数组;
ii. join(分隔符): 用分隔符组合数组元素,生成一个字符串;
iii. split(分隔符): 和join相反,把字符串切成数组;
e) 万能方法splice():
splice()语法:
arrayObject.splice(index,howmany,element1,.....,elementX)
参数 | 描述 |
index |
必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。 |
howmany |
必需。规定应该删除多少元素。必须是数字,但可以是 "0"。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 |
element1 | 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。 |
elementX | 可选。可向数组添加若干元素。 |
返回值:如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
说明:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
i. 参数:splice(开始位置,长度,新元素,新元素...);
ii. 作用:先从开始位置删除一定长度的元素,再在指定位置开始插入一些元素;
iii. 可以用于从中间插入、中间删除、以及任意位置替换;
例子1:在本例中,我们将创建一个新数组,并向其添加一个元素:
<script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") arr.splice(2,0,"William") document.write(arr + "<br />") </script>
输出:
George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin
例子2:在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:
<script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") arr.splice(2,1,"William") document.write(arr) </script>
输出:
George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin
例子3:在本例中我们将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素:
<script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") arr.splice(2,3,"William") document.write(arr) </script>
输出:
George,John,Thomas,James,Adrew,Martin
George,John,William,Martin