1、关键字
注意三个关键字this、continue、break。
this:代表自己本身,谁调用它,它就代表谁。
continue:表示跳出本次循环。
break:表示结束整个循环。
2、类型相关
(1). 变量
变量分为全局变量和局部变量,变量必须先声明后调用,如果在声明之前调用会显示undefined。
全局变量:从定义开始,一直到文档的之后无论在任何位置,定义变量不添加var关键字,会成为全局变量。
局部变量:从定义开始,一直到包含它的尾大括号为止,当局部变量和全局变量发生重复定义时,使用局部变量。
(2). 数组
数组对象用来在单独的变量名中存储一系列的值。
- 声明数组 var array = ['1','2','2','3','10','26'];
- arr[i] 通过下标获取数组中的元素,i为元素的下标,下标从0开始
- length 获取数组元素的个数;
- push() 在最后添加元素;
// 声明数组
var arr = ['45','30','3','35']
// 获取数组中的第二个元素
console.log(arr[1]);
// 获取数组元素的个数
console.log(arr.length);
// 在数组最后添加元素
arr.push('100')
console.log(arr);
控制台打印效果
- arr[i] = a 修改数组中某一元素的值
- pop() 删除最后一个元素;
- unshift() 插入到第一个元素的位置;
- shift() 删除第一个元素;
// 声明数组
var arr = ['45','30','3','35'];
// 修改数组中第三个元素的值
arr[2] = '50';
console.log(arr);
// 删除最后一个元素
arr.pop()
console.log(arr);
// 删除第一个元素
arr.shift();
console.log(arr);
// 在数组的最前面插入元素
arr.unshift('100');
console.log(arr);
控制台打印结果
- slice(start,end) 从已有的数组中返回选定的元素;
该方法不会修改数组,而会返回一个子数组,注意两个参数的用法:
start: 起始位置,必选。为元素下标,可为负值。当为负值时是从最后一个元素开始算,倒数第一个元素为-1,倒数第二个元素为-2,依此类推。
end:结束位置,可选。为元素下标,可为负值。获取时不包含此下标所代表的元素,如果没有选定结束位置则默认直接获>取到最后一个元素。
// 声明数组
var arr = ['45','30','3','35'];
// 从第二个元素开始获取到最后一个元素为止
console.log(arr.slice(0,-1));
// 从倒数第三个元素开始获取到第四个元素为止
console.log(arr.slice(-3,3));
// 从第0个元素开始,获取到第四个元素为止
console.log(arr.slice(0,3));
控制台打印效果
- concat() 用于连接两个或多个数组;
// 声明数组
var a = [1,2,3,4];
var b = ['a','b','c','d','s'];
var c = ['生死契阔,','与子成悦;','执子之手,','与子偕老。']
console.log(a);
console.log(b);
console.log(c);
// 连接数组
a.concat(b);
console.log(a.concat(b));
// 连接多个数组
a.concat(b,c)
console.log(a.concat(b,c));
控制台打印结果
- splice(index,howmany,item1,.....,itemX) 从数组中添加/删除项目,然后返回被删除的项目,该方法会修改数组,注意三个参数的用法:
index: 必需。整数为指定下标,规定添加/删除项目的位置,可使用负数。当为负值时是从最后一个元素开始算,倒数第一个元素为-1,倒数第二个元素为-2,依此类推。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item:可选。向数组添加的新项目。
var arr = [23,10,6,12,50]
// 从下标为2的元素开始删除3个并将5加入数组中
arr.splice(2,3,5)
console.log(arr);
// 从下标为2的元素开始插入10和20两个元素
arr.splice(2,0,10,20)
console.log(arr);
// 从下标为2的元素开始删除3个元素
arr.splice(2,3);
console.log(arr);
控制台打印效果
- reverse()返回一个元素顺序被反转的Array对象,注意只是返回而没有创建。
- join()将数组转换为字符串,元素由指定的分隔符分隔开来。
小练习:反转字符串
// 反转字符串
var str1 = "abcdefhijk";
// split()字符串方法,将字符串分割成数组
var strs = str1.split('');
// reverse()返回一个元素顺序被反转的Array对象,注意只是返回而没有创建
// join()将数组转换为字符串,元素由指定的分隔符分隔开来
var str2 = strs.reverse().join("");
console.log(str1);
console.log(strs);
console.log(strs.reverse());
console.log(str2);
控制台打印效果
(3). 字符串(String)
字符串对象用于处理已有的字符块。
- string.length 获取字符串的长度。
- string.toUpperCase() 全部转为大写。
- string.toLowerCase() 全部转为小写。
- string.fontcolor() 修改字体颜色。
- string.fontsize(20) 修改字体大小。
- string. small() 设置小文字。
- string.big() 设置大文字。
var string = 'xiongzhong';
// 获取字符串的长度
console.log(string.length);
// 全部转为大写
title.innerHTML = string.toUpperCase();
// 全部转换为小写
title.innerHTML = string.toLowerCase();
document.write("ssssssssssss");
// 改变字体颜色
document.write("ssssssssssss" .fontcolor('blue'));
// 修改字体大小
document.write("ssssssssssss" .fontsize(20));
// 设置大文字
document.write("ssssssssssss" .big( ));
// 设置小文字
document.write("ssssssssssss" + "<br/>".small( ));
代码执行效果
- string.sub() 使文字成为下角标。
- string.sup() 使文字成为上角标。
- string.bold() 文字加粗。
- string.italics() 斜体。
- string.strike() 给文字添加中划线。
- string.link() 使文字成为链接地址。
- string.indexOf() 返回某个指定字符串中第一个字符的下标,如不存在则返回-1。
注意:字符串中的空格也算一个字符,此方法也可用于数组。
var string3 = string2
document.write(string2);
document.write(string3.fontcolor('red').big().fontsize(20));
document.write("<br/>"+ string2);
// 使文字成为上角标
document.write(string2.sup());
// 使文字成为下角标
document.write(string2.sub());
// 设置文字加粗
document.write(string2.bold());
//设置文字为斜体
document.write(string2.italics());
// 给文字添加中划线
document.write(string2.strike()+ "<br/>");
// 使文字成为链接地址
var name = '有种就点我';
title.innerHTML = name.link('http://www.baidu.com');
var names = ['李泽', '李杨', '李猛', '李明正', '李艳美', '李辉', '肖卫卫', '肖红雨'];
// indexOf('text')返回第一个字符的下标,如果不存在则返回-1
var count = 0;
// 遍历names内的字符串
for (var i = 0; i < names.length; i++) {
// 找的第一个字符为“李”,即下标为0的字符串计算后即为李姓人数
if (names[i].indexOf('李') == 0) {
count++;
}
}
console.log(count);
代码执行效果注释: innerHTML 先清空再赋值。
- string.match() 查找字符串,存在返回字符串,不存在返回null。
- string.substring(start, end) 提取字符串介于两个指定下标之间的字符,提取时包含start所代表的元素,不包含end所代表的元素。
start 开始位置的下标。
end 结束位置的下标,此参数可选,如果不写默认一直到最后。
如string.substring(2, 4)表示提取下标从2到4的字符。
- string.substr(start, count) 在字符串中抽取从某一下标开始,指定数目的字符。
如:string.substr(2, 3) 表示从下标为2的字符串开始截取3个字符。
注意:start可为负值,-1指字符串最后一个字符。
- string.split() 用于把一个字符串分割成数组,可按某一个字符来拆分,拆分之后的字符串放在一个数组中,并删除该字符。
var string = "山 无 棱,天 地 合,乃 敢 与 君 绝。";
// indexOf('text')返回第一个字符的下标,如果不存在则返回-1
// 空格也会被当做一个字符串,返回下标时(乃 敢 与 君 绝)会整体被当做一个字符串进行计算
console.log(string.indexOf('乃 敢 与 君 绝'));
// match()查找字符串,存在返回字符串,不存在返回null
console.log(string.match("执子之手"));
console.log(string.match("山 无 棱"));
// substring() 方法用于提取字符串中介于两个指定下标之间的字符。
//包含第一个但不包含最后一个
console.log(string.substring(6,23));
// 从下标为三的子字符一直到最后
console.log(string.substring(3));
// substr() 方法可在字符串中抽取从某一下标开始的指定数目的字符。
// 从下标为6的字符开始截取3个
console.log(string.substr(6,3));
// split() 方法用于把一个字符串分割成字符串数组,可以按某一个字符来拆分,拆分之后的字符
// 串放在一个数组里面,并删除该字符。
// 按空格拆开,
console.log(string.split(""));
代码执行效果
(4). 类型转换
- parseInt() 将字符串换为整数;
// parseInt()此方法会把字符串转化为整数,默认去掉小数和字母
// 如果字符串以非数字开头则返回NaN(不是一个数字)
console.log(parseInt('23.2432dksl'));
console.log(parseInt('sd32'));
console.log(parseInt('35.23434'));
console.log(parseInt(true));
控制台打印效果
- parseFloat() 将字符串转换为带小数点的数字;
console.log(parseFloat('10hfsiu'));
console.log(parseFloat('23.23949'));
console.log(parseFloat('3.343ewoe2'));
控制台打印效果
- toString() 把数字转化为字符串;
var a = 23;
// 查看数据类型为number
console.log(typeof(a));
// 把a转化为字符串
var b = a.toString()
console.log(typeof(b));
控制台打印效果
- eval()将字符串转换为可执行的值
var a = 10;
console.log("10 + 20");
console.log(eval("10 + 20"));
代码执行效果
3、元素的获取
- getElementById() 根据id值获取元素,返回一个元素。
- getElementsByTagName() 根据标签名获取元素,返回一个数组。
- getElementsByClassName() 根据class值获取元素,返回一个数组。
- getElementsByName() 根据name值获取元素,返回一个数组。
<body>
<div class="wrap">
<h1 id="title"></h1>
<a href="#"></a>
<input type="button" name="name" value="">
</div>
</body>
<script type="text/javascript">
// 根据id值获取元素,返回一个元素
var h1 = document.getElementById("title");
// 根据标签名获取元素,返回一个数组
var a = document.getElementsByTagName("a");
// 根据class值获取元素,返回一个数组
var wrap = document.getElementsByClassName("wrap");
// 根据name值获取元素,返回一个数组
var input = document.getElementsByName("name");
console.log(title);
console.log(a);
console.log(wrap);
console.log(input);
</script>
控制台打印效果
4、className属性
设置元素的class属性的值,会覆盖之前的class值。也可以用类似的方法设置元素的id值。
<body>
<div class="wrap">
<h1 id="title"></h1>
<a href="#"></a>
<input type="button" name="name" value="">
</div>
</body>
<script type="text/javascript">
// 根据id值获取元素,返回一个元素
var h1 = document.getElementById("title");
// 根据标签名获取元素,返回一个数组
var a = document.getElementsByTagName("a")[0];
// 给h1标签添加class值
h1.className = 'title';
// 给a标签添加id值
a.id = 'a';
</script>
修改后的效果
5、input的checked属性
判断一个选项卡是否处于选中的状态。
6、鼠标事件
- onclick(鼠标单击)
- ondblclick (鼠标双击)
- onmousedown(鼠标按下)
- onmouseup(鼠标抬起)
- onmousemove(鼠标移动)
- oncontextmenu(右击鼠标)
- onmouseover(鼠标划入)
- onmouseout(鼠标划出)
- onscroll(滚动事件)
- onresize(窗口大小发生改变)
- onwheel(鼠标滚轮事件)
7、练习
(1). 练习全部选中、全部取消、反选
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>全部选中/全部取消</title>
<style media="screen">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
li {
line-height: 1.3em;
padding-left: 100px;
}
li input {
margin-right: 20px;
}
li:nth-child(odd) {
background-color: rgb(245, 245, 245);
}
li:nth-child(even) {
background-color: white;
}
li:hover {
background-color: cyan;
}
</style>
</head>
<body>
<button type="button" name="button">全部选中/全部取消</button>
<button type="button" name="button">反选</button>
<ul>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
<li><input type="checkbox" name="name" value="">选项1</li>
<li><input type="checkbox" name="name" value="">选项2</li>
<li><input type="checkbox" name="name" value="">选项3</li>
<li><input type="checkbox" name="name" value="">选项4</li>
<li><input type="checkbox" name="name" value="">选项5</li>
<li><input type="checkbox" name="name" value="">选项6</li>
<li><input type="checkbox" name="name" value="">选项7</li>
<li><input type="checkbox" name="name" value="">选项8</li>
<li><input type="checkbox" name="name" value="">选项9</li>
</ul>
</body>
<script type="text/javascript">
// 获取元素
var btns = document.getElementsByTagName('button');
var lis = document.getElementsByTagName('li');
var inputs = document.getElementsByTagName('input');
// 绑定事件
btns[0].onclick = function () {
var count = 0;
// 获取选中的个数
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].checked == true) {
++count;
}
}
// 判断是否全部选中
if (count == inputs.length) {
for (var i = 0; i < inputs.length; i++) {
inputs[i].checked = false;
}
} else {
for (var i = 0; i < inputs.length; i++) {
inputs[i].checked = true;
}
}
}
btns[1].onclick = function () {
for (var i = 0; i < inputs.length; i++) {
inputs[i].checked = !(inputs[i].checked);
}
}
// 给所有的li绑定事件
for (var i = 0; i < lis.length; i++) {
lis[i].onclick = function () {
// alert(this.innerHTML);
var input = this.getElementsByTagName('input')[0];
input.checked = !(input.checked);
}
}
</script>
</html>
代码执行效果
(2). tab切换
// 根据TagName获取标签
var inputs = document.getElementsByTagName('input');
var sections = document.getElementsByTagName('section');
// 遍历所有的input按钮
for (var i = 0; i < inputs.length; i++) {
// 自定义属性为按钮添加下标
inputs[i].index = i;
// 为所有的按钮绑定事件
inputs[i].onclick = function () {
// 遍历所有的section
for (var j = 0; j < sections.length; j++) {
// 将section全部隐藏
sections[j].style.display = 'none';
}
// 将按钮的下标直接放入sections的下标中点击按钮即可显示对应的section
sections[this.index].style.display = 'block';
}
}
代码执行效果
以上内容纯属个人理解,由于水平有限,若有错漏之处敬请指出斧正,小弟不胜感激。
网友评论