js基础知识点

优先级

运算符优先级:
括号优先
逻辑与比逻辑或优先
赋值运算符最后

typeof(变量名) 输出变量数据类型

firebug 调试js代码,函数执行完成后会继续返回到调研的位置

在函数内部定义的变量为局部变量,局部变量取消前面的var 就默认为全局变量,全局变量在函数外部使用时,需要先调用函数;

函数可以先定义后调用,同时也可以先调用后定义;

arr.length 计算数组长度

isNaN(24) 判断是否不是一个数字,若为”23b”,则不是一个数字,返回ture

数组对象

var arrr = [23,24,25];
arr.concat(arr1,arr2) 使用concat连接数组或者在arr数组后面增加元素,组成的是新的数组

arr.join(“-“) 使用“-”连接数组的每一项 返回的结果是 23-24-25;如果以空字符串连接,返回的是字符串
pop(),删除数组的最后一项,并且返回被删除的元素;
push(),加入新的内容,并返回新的长度;
reverse():翻转数组的顺序;

字符串对象

charAt(3) ,获取指定字符串下标的元素
charCodeAt(3),获取指定字符串下标元素的ASCCI值
indexOf(“d”),获取字符d在字符串中第一次出现的位置,若无法查找返回-1;
lastIndexOf(“d”),获取字符d在字符串中最后一次出现的位置,若无法查找返回-1;
split(“n”),将字符串以字符n进行分割,返回一个数组;
substr(n,m),截取字符串从n开始的m个元素,如果只有一个参数就截取到最后
substring(n,m),截取从下标为n的位置到m的位置;左开右闭区间;如果只有一个参数就截取到最后
toLowerCase():将字符串字母转换成小写形式返回,原有字符串大小写不变
toUpperCase():将字符串字母转换成大写形式返回,原有字符串大小写不变

判断上传文件的思路:通过使用lastIndexOf(“.”)判断“.”最后出现的文字,再通过substr(n+1,4)截取文件格式后缀进行判断;为避免大小写问题可以通过toLowerCase()统一转换成小写进行判断

Math对象

Math.pow(n,m):求n的m次方
Math.abs(n):求n的绝对值
Math.round(n):求n的四舍五入值
Math.floor(n):求n的向下取整的值
Math.ceil(n):求n的向上取整的值
Math.random():求0-1的随机整数 ,左开右闭区间求10-20的整数Math.floor(Math.random()*10+10);
使用floor比用round公平,出现0的概率与出现1的概率相同;

DaTe对象

四种创建方式:
var n1 = new Date();
var n2 = new Date(“1991/11/5”);
var n3 = new Date(1991,11,5);显示12月
var n4 = new Date(233428408324);
toLocaleString():该方法以本地格式显示

getFullYear();获取年份
getMonth();获取月份
getDate();获取日期
getHours();获取小时
getMinutes();获取分钟
getSeconds();获取秒
getMilliSeconds();获取毫秒
getDay();获取星期
getTime();获取从1970到时间点的毫秒

样式对象

obj.style.background = “res”; 背景颜色变为红色
obj.style.fontSize = “60px”; 更改字体大小
innerHtml获取文档内容(带html标签)
innerText获取文本内容(去除HTML标签)

事件

onfous:获得焦点
onblur:失去焦点
onsubmit:提交事件
onchange:当发生改变的时候
onreset:重置事件
onload 当页面加载完成立刻执行的事件
两种方式:

Event事件信息对象

Event:保存事件发生时的相关信息
Event.clientX:事件发生时的X的坐标(鼠标事件的对象)
var obj = Event.target:事件发生源(返回触发此事件的元素)
Event:必须通过参数形式传递给函数才可以使用

cursor 光标

cursor:crosshair;
cursor: help;
cursor:wait;

错误调试

try{运行错误代码}
catch(err){alert(err.message);}

创建标签对象

var obj = document.createElement(“标签名”) 通过createElement创建标签对象
document.body.appendChild(obj); 将标签对象增加到obj中

注意:body中由于margin边距原因可能导致事件不会被触发(小星星案例)

按钮开关的切换方式

方法一:通过if语句进行判断value值
方法二:通过记录点击的次数,默认开,如果是偶数就返回开,如果是奇数就返回关。注意定义记次变量需作为全局变量
方法三:定义一个flag 变量记录bool值,开为ture,关为false
方法四:通过this传递当前对象,判断当前对象的value值
this代表当前obj

window对象

var n = prompt(“提示信息”,”默认值”); //pppp就是可以输入信息的
confirm()选择确定和取消
open(“www.uiste.com","uiste博客","width=300,height=300,top=20,left=20") 打开一个新的窗口

定时器

一次性定时器:var time1 = windows.setTimeout(“js代码”,时间);
反复性定时器:var time2= window.setInterval(“js代码”,时间);
清楚定时器:window.clearTimeout(time1);

图片轮播的思想

声明全局变量:背景图变换的序号i,用于清楚定时器的time;
第一步:初始化函数中加入一个交换背景图片的反复性定时器用于加载交换函数
第二步:图片自动播放联动按钮变化:在交换函数中通过for循环改变i的值,再通过元素样式对象属性进行切换图片;通过第二个循环,与第一循环的i值关联,用于联动按钮的背景样式
第三步:写一个stop函数当鼠标放置在img上清楚定时器,start函数鼠标离开时重新启动定时器(注意设置定时器名字)
(dsq=window.setInterval("change()",1000);)重写一遍定时器
第五步:按钮点击联动图片自动切换:通过使用函数值传递,进行判断切换stopImg函数(注意i=n来控制图片切换避免鼠标离开时乱启动图片)
<li id="d1" onmousemove="stopImg(1,this)" onmouseout="startImg(this)">1</li>

找对象的方法

id:document.getElementById(“id名”);
标签名:document.getElementsByTagName(“标签名”);//多个标签以数组形式保存
name:document.getElementsByName(“name名”);//数组
className:document.getElementsByClassName(“class名”);//数组
img:document.images;//数组
link对象:document.links;//获取连接对象,数组
表单对象:document.form;
body标签对象:document.body;
html标签对象:document.docuementElement;
事件信息对象:event;
当前对象:this;

location对象

location.属性 返回当前页面的URL相关信息
location.方法()
assign加载新文档【跳转】
reload重新加载当前文档【刷新】
replace 用新文档替换当前文档【不会再history中生成新的记录】

history 对象

包含用户访问过的URL
属性:
length:返回历史记录中的URL数量
方法:
back():加载前一个页面
forward():加载后一个页面
go(-3):跳转到指定页面,后退几个页面就写数字几

screen对象

screen.height:获取屏幕的高度
screen.width:获取屏幕的宽度

包含有关浏览器的相关信息
appName : 返回浏览器名称
appCodeName:返回浏览器代码名
appVersion:浏览器版本号和平台信息
userAgent:浏览器信息
浏览器判断

1
2
3
4
5
6
7
8
var obj = navigator.userAgent;
if(obj.indexOf("Firefox"!=-1)){
alert("火狐浏览器");
}else if (obj.indexOf("Chrome"!=-1)){
alert("谷歌浏览器");
}else{
alert("其它浏览器");
}