一、理论知识总结
1. 什么是js:就是修改样式
2. 事件
onclick鼠标点击事件 onload加载事件 onmouseover---onmouseout鼠标移入移出事件 onchange更改事件、改变事件 onmousedown---onmouseup鼠标按下抬起事件
3. 获取元素的方式
(1)getElementById(id); ---通过id获取一个元素
(2)getElementsByTagName(标签名);---通过标签名获取一组元素
(3)getElementsByClassName(类名)---通过class获取一组元素(不兼容,ie6-ie8)---getByClass
function getByClass(sName){
var aEle = document.getElementsByTagName('*');
var result = [];
for(var i=0;i<aEle.length;i++){
var aClass = aEle[i].className.split(' ');
if(findInArr(aClass,sName)){
result.push(aEle[i]);
}
}
return result;
}
function findInArr(arr,name){
for(var i=0;i<arr.length;i++){
if(arr[i]==name){
return true;
}
}
return false;
}
4. 变量
(1)别名,把很长的东西简写。用变量的地方,就像用东西本身一样
(2)变量&&字符串:变量没有引号,字符串有引号
5. 函数
(1)为什么要写函数:方便重用,写一次,以后直接调用就i型那个。代码写在行间太乱
(2)函数名:随便取,只要不用保留关键字就行
(3)两个概念:定义----只是告诉系统有这么个东西,不会真正执行里面的代码。调用----真正执行函数中的代码,调用几次就执行几次
只定义不调用,函数不执行;只调用不定义,找不到函数,报错。
在哪儿定义不重要,重要的是在哪儿调用,用的时候是多少,就是多少
6. 判断
if(条件1){ 语句1;
}else if(条件2){ 语句2;
}else{ 语句n;
}
如果只执行一句话,if可以不写大括号
7. a链接:<a href="javascript:;"></a>
8. javascript的几种类型 字符串 数字 布尔 undefined object function
9. 参数:[ ]可以代替点,只要是js中出现点的地方,都可以用[ ]代替。
10. 数组
(1)[1,2,3,4,5]; new Array(1,2,3,4,5); 没有任何区别,第一个性能略高
(2)length:获取数组长度
(3)下标:获取某一个元素。下标从0开始
11. 循环
(1)什么是循环:重复执行一段代码。初始化、条件、自增、语句
(2)while(条件){执行的语句;}-----适合操作次数不固定的循环
(3)for(初始化; 条件; 自增){执行的语句;}----适合操作次数固定的循环
(4)for(var i in json){ //i---键 json[i]----值 适合用于json}
12. 定时器
(1)每隔一段时间执行一次:setInterval();----clearInterval();
(2)只执行一次:setTimeout();----clearTimeout();
13. Date对象
get... set... new Date();
getTime();----获取的是格林威治时间--1970年1月1日0时0分0秒0毫秒开始到目前为止的毫秒数
var time=19563096473;
var s=parseInt(time/1000);
var d=parseInt(s/86400);
s%=86400;
var h=parseInt(s/3600);
s%=3600;
var m=parseInt(s/60);
s%=60;
d h m s
14. 字符串常用方法
indexOf----lastIndexOf从...往...查找字符 substring 截取字符串 split 切分字符串 toUpperCase---toLowerCase转换成大/小写
15. 数组的常用方法
push--pop 最后一位添加/删除 splice 增删改 reverse 反转 concat 链接
unshift---shift 第一位添加/删除 join 转字符串 sort 排序(sort(function(a,b){return a-b;}))
16. json json和数组的区别:json没有length
17.Math
abs绝对值 sqrt开平方 pow--n次方 max/min--最大/小值 round--四舍五入 floor--向下取整 ceil--向上取整 random--随机数
18.浏览器判断: window.navigator.userAgent.indexOf('MSIE 6.0')!=-1;
二、笔试题
1. parseInt 转整数 parseFloat 转小数 Number 转数字,但是更严格。
2. function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
}
function rnd(n,m){
return parseInt(n+Math.random()*(m-n));
}
3. 真:true 非零 非空字符串 非空对象
假:false 0 ‘’ null NaN undefined
4. function getToDay(){
var oDate = new Date();var Y = oDate.getFullYear();var M = oDate.getMonth()+1;var D = oDate.getDate();return M+'/'+D+'/'+Y;
}
5. showing test undefined
6. function a(){alert('a')} a undefined undefined
7. var oDate = new Date();
oDate.setFullYear(setFullYear(),0,1);
oDate.setMonth(0,1);
8. function sum(){
var result = 0;
for(var i=0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
9. 假设有str
str.substring(str.lastIndexOf('.')+1);
10. 字符串转数组 split('切的方式')
数组转字符串 join('链接的方式');
11. var str = "Welcome to ZhiNengShe!";
vara s = str.substring(0,str.length-1);
s.split(' ').reverse().join(' ');
12. if(window.navigator.userAgent.indexOf('MSIE 6.0')!=-1){ //是ie6}
13. 自定义属性
for(var i=0; i<aBtn.length; i++){
aBtn[i].index=i;
aBtn[i].onclick=function(){
alert(this.index);
}
}
14. 封闭空间
for(var i=0; i<aBtn.length; i++){
(function(index){
aBtn[i].onclick=function(){
alert(index);
}
})(i);
}
12. arr.length=0;
arr.splice(0,arr.length);
arr.splice(0);
循环pop、shift
arr=[];
13. var oDate = new Date();
oDate.setDate(1);
oDate.getDay();
var oDate = new Date();
oDate.setMonth(oDate.getMonth+1,1);
oDate.setDate(0);
oDate.getDate();
14. var arr = str.split(' ');
var arr2=[];
for(var i=0;i<arr.length;i++){
arr2.push(arr[i].charAt(0).toUpperCase()+arr[i].substring(1));
}
str = arr2.join(' ');
15. 九九乘法表
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write(i+"*"+j+"="+i*j+" ");
}
document.write('<br>');
}
16. eval:把字符串转化成js能执行的东西
eval json转换成字符串的时候需要写成eval('('+str+")")
17. str="{a:1,b:2,c:8}"
18. 获取当前选中项的文字:oS.options[oS.selectedIndex].text;
删除第2个:oS.options.remove(1);
添加
var oP = new Option(value,text);
oS.options.add(oP);
[23,65,1,-100,66,33,43,93]
[93,65,1,-100,66,33,43,23]
[93,66,1,-100,65,33,43,23]
[93,66,65,-100,1,33,43,23]
[93,66,65,43,1,33,-100,23]
[93,66,65,43,33,1,-100,23]
[93,66,65,43,33,23,-100,1]
[93,66,65,43,33,23,1,-100]
[93,66,65,43,33,23,1,-100]
三、机试
1.taobao首页的轮播图。
2.联动选择
3.重构通过className获取元素
4.自定义的日期时间,要求有年月日时分秒,星期
5.计算器,:加减乘除取模。
6.qq资料框
7.打印出一个9行的直角三角形
8.打印出一个9行9列的方块