javascript是网景公司开发的用于与页面进行交互的脚本语言。javascript程序在浏览器端运行,一般写在.js结尾的文件中。主要的功能有表单验证(前端验证),与页面进行交互,生成动态的效果,获得浏览器相关的信息 等。
1.setTimeout 和 setInterval
setTimeout("function",time) 设置一个超时对象,执行一次。
setInterval("function",time) 设置一个超时对象,在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码。
不过还是有办法可以终止setTimeout和setInterval函数的执行。
当setInterval调用执行完毕时,它将返回一个timer ID,将来便可以利用该值对计时器进行访问,如果将该ID传递给clearInterval,便可以终止那段被调用的过程代码的执行了
2. navigator.userAgent 返回当前浏览器用户代标志
3、原生对象
Object类有下面两个主要属性:
❑constructor — 创建该对象的函数的引用,对于Object类本身来说,它指向的是浏览器原生的Object() 函数。
❑prototype — 该对象的原型的引用。所有对象的原型默认为Object。
Object类的一些方法:
❑hasOwnProperty(property) —判断本对象是否拥有某一个属性,比如:o.hasOwnProperty(“name”)。
❑isPrototypeOf(object) — 判断本对象是否是另一对象的原型。
❑propertyIsEnumerable(property) — 判断本对象的某属性是否是枚举类型(可以使用for…in)来获取每一个值。
❑toString() — 输出本对象的字符串形式,依赖于其具体实现。 ❑valueOf() —与toString()相同。
4、Number对象
toExponential([fractionDigits]) :将数字按科学计数法格式返回,fractionDigits值小数点后保留的位数。
toFixed([fractionDigits]) :将数字按指定的小数点位数返回,fractionDigits值小数点后保留的位数。
toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),precision是指定的精度值。
Number(): 转换的是整个值,如果字符串值能被完整地转换,Number()将判断是调用parseInt()方法还是调用 parseFloat()方法。"4.5.6 "将被转换为 NaN。
parseInt()和parseFloat(): 只转换第一个无效字符之前的字符串。 e.g:"4.5.6 "将被转换为 "4.5 "。
formatValue = parseFloat(1.234e5.toString()); result:123400
5、array
shift: 删除数组第一个元素,并返回这个元素
unshift:向数组的开头添加一个或多个元素,并返回新的长度 e.g. unshift('-2','1');
splice: 删除元素,并向数组添加新的元素
splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
join: 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔
e.g. var a = [1,2,3,4,5]; var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"
push: 向数组的末尾添加一个或更多元素,并返回新的长度
pop:删除数组最后一个元素,并返回这个元素
concent: 返回一个新数组,是将参数添加到原数组中构成的
e..g. var a = [1,2,3,4,5]; var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
6、 Event
onblur:会在对象失去焦点时发生
oncontextmenu: 鼠标按下右键的时候发生
onscroll:拖动滚动条时发生
onresize: 会在窗口或框架被调整大小时发生
onmousewheel: ie、chrome下鼠标滚轮滚动时发生
DOMMouseScroll: 是标准下(ff)鼠标滚轮事件,鼠标滚轮滚动时发生
//-----
keyCode:在Event对象下获取用户按下键盘的哪个按键
preventDefault()阻止默认默认事件的绑定写法
cancelBubble =true 在Event对象下取消冒泡事件
7、继承
参考:http://yahaitt.iteye.com/blog/250338
//todo
8、正则表达式
参考: http://www.jb51.net/article/21484.htm
e.g.
var pattern = /^[0-9]{1,20}$/;
if (!pattern.exec(s)) return false;
return true;
9、 js有5种数据类型(原数据):Undefined、Null、Boolean、Number、String
Undefined数据类型的值只有1个:undefined
Null数据类型的值只有1个:null
Boolean数据类型的值只有2个:true、false
Number的数据类型的值:所有的浮点数和整数
String的数据类型的值:所有的字符串
undefined是由null派生而来的
10、强制类型转换
强制类型转换有3种:Boolean(value),Number(value),String(value),返回值类型(即用typeof运算符)都是原始类型的值
Boolean(value):只有value的值为null或0或""时,才为false,否则为true
Number(value);value为非数字时,结果为NaN(意思为not a number)
指定当前显示链接的位置:window.location.href=
"URL"
11、js不同于java的另一种特点是:js在实例化对象后,可以对这个对象增加属性和属性值,并且还可以通过delete一元操作符来删除对象的属性。
var o = new Object();
o.name = "langsin";
alert(o.name);
delete o.name;
alert(o.name);
12、window.open() 获取返回值
var value=window.open('open.htm','window','width=200,height=200,left='+x+',top='+y);
子窗口:window.opener.document.all.code.value=text.value;
13、js拖动事件:dragstart、drag、dragend
14、offsetLeft:获得元素的左偏移量
offsetLeft和OffsetTop不是获得元素和页面的距离,只是获得元素和父元素的的距离
所以要进行while循环一层层累加距离,最后得到元素和页面之间的距离