进度表
1.
if判断
if……
else if ^……else 可有可无根据需要而定
2.
style
a,操作的是行间样式-----用style获取不靠谱
b,style class------不要混着用--用class
3.
class-----要写成className
原因是:它是个保留字(或者说是个关键字)
4.
javascript:;
作用:不做事,点击后不跳到页面的顶部
5.
事件提取
window.οnlοad=function
{
};
作用:页面加载完后执行函数
当js写在body上面的时候,必须用
6.
参数
作用:往函数里面传东西,
穿多少?
不限制个数和类型(数字,字符串)视需求而定
7.
获取元素
getElementById
-------------------一个
getElementsByTagName
-------------一组
getElementsByClassName
-----------一组----不兼容低版本
getElementsByName----------------一组
注释:
ById只能在document下调用,不能在某个元素下调用
原因是:在document下调用和在
某个元素下调用效果一样,所以就没必要在
在某个元素下调用
8.
数组
作用:往里面存东西
有两个属性:
length:个数
arr[xx]:下标---->第几个,从0开始
9.
操作一组元素------循环
while的基本格式:
while(条件)
适合:次数不固定
{
语句
}
当然写可以写成这样:
var i=0; //1.初始化
while(i<5) //2.条件
{
alert(i); //3.语句
//i=i+1; //4.自增
i++;
}
for的基本格式:
for(初始化;条件;自增) 适合:次数固定
{
语句
}
当然写可以写成这样:
for(;条件;)
{
语句
}
10.
分号-----指语句的结束
分号不是给函数加的;给赋值语句加的
任何语句的结束都应该有分号(防止压缩代码后出现问题)
11.
学习JS需要掌握两项要点:
a.基本操作:
如:如何定义函数,如何操作函数,如何获取元素
b.思想:思路、套路(见多了就会觉得非常简单)
如:
思路案例一
选项卡的思想:
先,把所有的弄没了
再,把当前的弄上
12.
innerHTML-----读、写标签里面的html代码
字符串连接
13.
typeof----检测类型
变量没有类型,它里面装的东西用类型
查看变量类型
alert(typeof 12);
number/string/boolean/function/undefined/object
null:object类型
基本类型:
number/string/boolean/function/undefined
混合类型、组合类型:
object:是有基本类型组成的
div id/title string
width/height number
14.
参数:可以传到函数里面的值
a.参数的个数不限
b.参数的具体值,
定义的阶段不知道,只有调用的时候才有
c.什么时候传,传几个完全根据需求来定
参数用途:往里面传东西
*对于函数来说定义不重要,调用才重要
参数是调用者传进去的
var a=12
function show()
{
alert(a);
}
a=5;
弹出的肯定是5,而不是12
15.
属性
属性访问符有两种:
a.点 oDiv.title
b.方括号 oDiv.['title']
点和方括号可以混着用
oDiv.style['background']
延伸
点后面你写的是什么就是什么它变不了
var title="xxx"
oDiv.title 操作的是title
而方括号里面title可以,以变量的形式存在
oDiv[title] 操作的是变量
16.
数组
一次只能操作一个元素
aDiv.style.background=xxxx 这样设置就错了
alert(aCh.checked)
这样获取也错了
aDiv[1].style.background=xxxx 这样设置就对了
alert(aCh[1].checked)
这样获取也对了
17.
innerHTML/parentNode/字符串连接/this
this:指当前的
18
选项卡
19
类型转换
字符串----->转数字
显式类型转换(强制类型转换)
parseInt 提取整数
parseFloat 提取整数+小数
Number 转为数字(含非数字就会报错)
如:+
隐式类型转换
如:
-
alert('12'*'5');弹出60
20
真假
只要没有东西就是假
21
返回值:return
需要返什么就直接返
用法:
return xxx;
{
xxxxxxxx;
return;
}
22.
变量作用域:也就是变量的范围
a.全局 全局变量:定义在函数外面 非常不好
全局变量其实是window的 一个属性
给window加东西其实就是全局变量如:window.xxx=??;
var a=12;
var a=12;
function show()
function show()
{ {
var=5
var=5
alert(a)
alert(window.a)
} }//指明要全局变量
show();
show();
则弹出:5 则弹出:12
b.局部 局部变量:定义在函数里面
子函数能用父函数的局部变量
如果全局的和局部变量重名了------离谁近就用谁
23.
封闭空间
只要能放函数名的地方一定能放函数本身
执行函数:函数名+();
oBtn.οnclick=show;
即等同于下面
oBtn.οnclick=function()
{
alert(abc)
};
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
function show()
{
alert('abc')
}
show();
即等同于下面
(function ( )
{
alert('abc');
})
( );
函数:每执行一次就复制一份
函数写法1:
好处:
a.不用给函数命名,防止重名
b.处理i的问题
(function(){})();
函数写法2:
function show(){
};
24.
获取非行间样式
getComputedStyle
currentStyle
25
i的问题
//封闭空间---只要能放函数名的地方一定能放函数本身
//方法:用()将函数包裹起来
//函数:每执行一次就会复制一份,内部的局部变量会跟着复制
26
参数 变量 返回值
共同点:什么都可以放,可以是任何东西(包括函数 )
27
switch
清晰,不适合范围判断
switch(值){
case情况1:
break;
case情况2:
break;
case情况3:
break;
default:
break;
}
28
三目运算符
条件?成立的值:不成立的值
一目 ! 需要一个值
二目 + - * /
需要二个值
三目 ?:
需要三个值
29
定时器
setInterval 每隔xxx,重复执行
实例:时钟、轮播图、动画
setTimeout 延时,只执行一次
实
例:广告
oDate的特性:在new的一瞬间确实是更新了一次,
但new完了它内部存储的时间就固定了
setInterval的特性:它的首次执行是在1s之后
解决方法:在定时器开启的同时就让它执行一次
30
异步:
当第一个定时器定时器启动后它立即就往下走
它不会等第一个定时器执行完后才往下走
31
js中规定:
a.使用一个没定义的变量,会报错
b.使用一个没定义的属性,会提示undefined
c.遇到报错就停
32
getComputedStyle能直接用说明它是个全局的东西
33
数组--------------------------->开始
随机数
Math.random----->随机数
function rnd(n,m)
{
return floor(Math.random()*(m-n)+n);
}
alert(rnd(7,99))
Math.random():
是0-1的随机数;包括0不包括1
34
数组方法-----添加、删除类
push 尾部添加
pop 尾部删除
unshift 头部添加
shift 头部删除
splice(起点,个数)--->任意位置添加删除
splice(位置,删除个数,添加什么)
功能:先删除 再 添加
substring(起点,终点) 不包括结束位置
用法:1.str.substring(n,f);[start,...,end-1]
2.str.substring(n)--->从n截到最后
str.split('分隔符')----->字符串拆分
数组方法-----顺序
倒序----reverse
排序----sort:默认情况下:只适用于
字符串-----arr.sort只会比较字符串
解决方法:替他比较
sort(
function(n1,n2)
{
return n1-n2
}
);
倒序的第二种方法:
sort(
function(n1,n2)
{
return n2-n1
}
);
33.
join与split---->
字符串拆分与拼接
str.
join
('连接符')----->字符串拼接
join:把数组里的东西连接起来--------拼起来
arr.join(‘-’)用
-
把数组里的东西连接起来
str.split('分隔符')----->字符串拆分
split把字符串拆成数组--------------拆开
var str=[3###$$$7###$$$9];
var arr=str.split('###$$$');
--------->arr=[3,7,9]
数组--------------------------->结束
字符串--------------------------->结束
34
字符串比较比的是编码
如:'@'<'*'
starts
Width--->不兼容
ends
Width
--->不兼容
substring--->截取
如:‘abcdefg’--->
substring(1,3)--->bc
*不包含结束位置
取第n个---str.charAt(index);
给个某个位置获取某个字符
charCodeAt(index)
获取某个位置的字符编码
fromCharCode(65)---->A
alert(string.fromcharcode(65))
编码转字符串
字符集(charset)
中国 gb2312
美国 ASCII
汉字在计算机里的顺序是按仓颉码的顺序来排的
unicode 统一编码
特点:统一 可扩展
utf-8是
unicode
的一种实现方式
英文 中文 占用的空间不同
1kb=1024b
一个英文 1
一个中文 2|3(gb2312中占2字节 utf-8中占3字节)
indexOf---搜索、查找
用法:str.indexOf('a');
返回的是,第一次出现的位置
没找到------>返回-1
lastIndexOf最后一次出现的位置
返回的是最后一次出现的位置
文件扩展名都在最后
35
逻辑运算
&& 与(并且)
必须都为真,结果才是true
|| 或(或者)
只要一个成立就行了,结果就是true
! 取反
!true--->false;
36
字符串操作
str.tolowerCase();
将字符串改成全小写
str.toUpperCase
将字符串改成全大写
37
json---存数据的
json和数组的区别:
数组是以下标序号作为基准存数据且有length
json是
以某个名字作为基准存数据没有length
json的表示方法:{名字:值;……}
擅长表述:数据型东西
json和数组可搭配着用
用 for in 循环
38.
return代表过程结束返回出去
39
Math
Math.min(12,6);--->
Math的最小值是6
Math.max(12,6);--->
Math的最大值是12
Math.abs(-5);----->
Math
的
绝对值是5
Math.ceil(3.001);--->
Math
的
值是4,向上取整
Math.floor(4.999);--->
Math
的
值是4,向下取整
Math.round(3.4999);----->
Math
的
是3,四舍五入
Math.PI;----->
Math
的
值是圆周率
Math.sqrt(4);----->
Math
的
值是2---开方
Math.pow(2,3);----->
Math
的
值是3---2的三次方
40
select
a.获取选中的值
oSel.value
b.获取所有选项
oSel.options
c.获取当前选中序号
oSel.selectedIndex
d.获取选中的文字
oSel.options[oSel.selectedIndex].text
41
html5--->html标准的第五版
js的组成
JS=
ECMAScript+
DOM+
BOM
a.ECMAScript(ECMA/ES)---->js解释器
它的版本由ES决定的
ES4.0 工作中用的最多
目前通用的是ES5.0 兼容性最好
ES6.0 移动的用的多
只提供JS语言的核心功能:定义变量、函数、加减乘除
b.DOM Document Object Model 文档对象模型
操作页面元素的能力 document
c.BOM Browser
Object Model 浏览器对象模型
操作浏览器的能力 window
42
节点:
parentNode:父节点
childNode:子节点
firstChild:首子节点 低版本兼容
last
Child:尾子节点 低版本兼容
firstElementChild:头一个元素子节点 高版本兼容
兄弟节点:
previousS
ibling 上一个子节点
低版本兼容
nextS
ibling 下
一个子节点
低版本兼容
previous
Element
S
ibling 上一个子节点
高
版本兼容
next
Element
S
ibling 下
一个子节点
高
版本兼容