js组成
1.ECMAScript:js标准
2.DOM: document object model文档对象模型结构 //DOM是对文档结构的创建,插入,修改,删除操作
3.BOM:browser object model 浏览器对象模型 //对浏览器窗口大小进行相关操作
调试操作
alert() //警告框 执行就+'/n'+
console.log() //控制台输出数据,提示
write() //在html页面输出数据提示
confirm //确认框
delete //删除,一般删除对象跟对象属性,反回值为布尔值,teur/false
break //跳出循环
continue //跳过本次循环
单词
this ; 指当前对象本身
1.在事件处理函数中的this :事件发生在谁身上,谁就是this
2.函数加小括号直接指向,this一般指window
3.定时器中的this指window
4.属性方法中this,就是这个属性所属的对象。
new: 操作符,创建。当调用一个构造函数的时候强制要求使用new。其他的就算了吧,会创造一个无用的portotype对象浪费内存
null: 指只有一个值即null,表示上文存在的对象,
undefined: 指只有一个值即undefined,声明变量未被初始化,变量默认为undefined
区别null和undefined可以用全等
return: 返回值
1.在if()else中出现return表示终止运行不会继续做判断,反回true/false
2.在函数中出现return,外部调用函数时,则会调用return后面的值,闭包就是运用这个属性,调用函数内部的局部变量,以不影响全局变量
arguments: 传参,实参的集合,有下标。当函数实参不确定,或者数量不确定时候用
element: 元素
length: 元素的个数,从0开始
value: 值
innerHTML : 元素的内容,还可以添加html标签
switch: 选择要执行的多个代码块之一。default关键词,规定匹配不存在时做的事
语法:
switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 }
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
while循环:循环在指定条件为真时执行代码块
do /while循环: 先执行一次循环,在判断条件是否为真
for循环: 循环代码块的一定次数
for/in: 循环遍历对象属性
cssText: 对于create一个元素时使用初始化其css样式
获取样式
getComputedStyle(); 获取元素经过计算后的样式值(IE6-8不支持)
currentStyle(); 兼容IE但是主流浏览器不兼容
定时器
setInterval(); 重复定时器。每隔一段事件就调用函数
setTimeout(); 一次性定时器。规定指定的时间,时间到了执行指定的method
clearInterval(); 停止重复定时器
clearTimeout(); 停止延时定时器
操作元素
element.getAttribute('属性名'): 获取元素属性
element.setAttribute('属性名','值') 设置元素属性
element.removeAttribute('属性名') 删除元素属性
都有兼容性问题
1.当操作属性是关键字或者保留字的时候,IE6/7会不一样,例如class IE6/7就要className
2.当操作两层及以上属性的时候只有IE支持,主流浏览器都不支持
图片预加载
new Image():创建一个Image对象,定义Image对象src。给浏览器缓存一张图片
src属性要写到onload后面,IE会报错,在FF和IE对img加载时机不同,建议不要放置过多图片会影响网页下载速度
complete属性,检测图像是否加载完成反回true/false
ie8和opera不支持onerror事件
节点操作
document.creareElement('标签名'); 在文档树中创建HTML标签
node.appendChild(''); 在DOM树节点中插入内容放在父级子节点最后
node.insertBefore(oli,'父级.firstChild'); 在父级的现有的子节点前插入新的子节点。第二个参数为null是与appendChild一样
node.removeChild(); 从一个节点中删除指定的子节点,也可自己删除自己。反回删除的对象
replaceChild('替换的对象','被替换的对象'); 替换元素子节点。反悔被替换的对象的引用
数字方法:
Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
Math.ceil(); 向上取长,只要有小数(不包括0)就进一位整数
Math.floor(); 向下取整,只要有小数就不要小树保留前面的整数
Math.round(); 四舍五入进整数
Math.min(); 用于确定数值中最小值
Math.max(); 用于确定数值中最大的值
Math.random(); 返回0-1之间随机数,不包括0-1。可以规定范围公式:值=Math.floor(Math.random())*总数+第一个值)
封装随机数:
function random(lower,upper){ var sum=upper-lower+1;//总数减去第一个数+1 return Math.floor(Math.random()*sum+lower) }
Math.abs(); 绝对值
Math.PI; 返回圆周率
Math.exp(); 返回e的指数
Math.log(); 返回数的自然对数(低为e)
Math.sin(); 返回正弦
Math.sqrt(); 返回平方根
Math.tan(); 返回正切
Math.toSource(); 返回该对象的源代码
Math.valueOf(); 返回Math对象原始值
类型转换
Number(); 转换为数字类型
parseInt(); 从左到右转换成整数,返回解析后的数字。不指定基数浏览器解析不一致。第一位不是数字返回NaN
parseFloat(); 从左到右转换成整数,并且保留小数部分,遇到一个无效的浮点数字符为止。Math.round()方法可设置舍入
NaN; 表示非数字
isNaN; 判断是不是数字,返回true/false
数字和字符串相加是字符串 1+2+'3'//返回 '33'
JSON数据
JSON.parse(); 从一个字符串中解析出json对象(IE6/7需要官网下载js库解决兼容)
JSON.stringify(); 从一个对象解析出字符串
eval(); 把字符串转换成js代码并执行.该字符串符合JSON格式,并且可以被JSON.parse方法还原
String对象
var str=""; var str= new String();
length属性,返回字符串长度
str.chatAt(index); 返回指定位置的字符
str.fromCharCode(); 该方法的参数是一系列Unicode码点。返回对应字符串
str.charCodeAt(index); 返回指定位置字符的Unicode码点
str.concat(str2); 合并两个字符串组成新的字符串
str.slice(start,end ); 截取字符串,不改变原字符串.第一个参数是开始位置,第二个参数是截取的结束位置不含该位置。如果参数是负数,表示从结尾处开始倒数计算位置。
str.substring(start,end); 用于从原字符串取出子字符串并返回,不改变原字符串,参数不接受负数。
str.substr(); 字符串中抽取从 start 下标开始的指定数目的字符。参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。ECMAscript 没有对该方法进行标准化,因此反对使用它。
str.indexOf(); 返回给定元素在字符串中最后一次出现的位置,如果没有出现则返回-1,可接受第二个参数表示搜索的开始位置
str.lastIndexOf(); 返回给定元素在字符串中最后一次出现的位置,如果没有出现返回-1。从尾部开始检索
str.trim(); 去除字符串两端的空格,返回新的字符串
str.toLowerCase(); 用于将一个字符串全部转为小写,返回一个新字符串,不改变原字符串
str.toUpperCase(); 全部转为小写
str.localeCompare(str2); 用于比较两个字符串。返回一个整数。
str.match(regexp); 检索字符串的值,是否匹配正则表达式。返回指定的值
str.search(); 只返回与第一个regexp相匹配的字符串的起始位置。从字符串开始位置检索
str.replace(); 在字符串中一些字符替换另一些字符,或替换一个与正则表达式匹配的字符
str.split(); 按照给定规则分割字符串,返回一个分割出来的子字符串组成的数组
toString(); 将一个数值转为字符串形式。
toFixed(); 用于将一个数转为指定位数的小数,返回这个小数对应的字符串
toExponential(); 将一个数转为科学计数法形式
to Precision(); 将一个数转为指定的有效数字
数组
var arr=[]; var arr= new Array()
属性:length; 数组长度
isArray(arr) ; 判断一个值是否为数组
arr.valueOf() ; 返回数组本身
arr.toString(); 将数组转变字符串
arr.push(); 在数组末端添加一个或多个元素,返回新数组长度
arr.pop() ; 删除数组最后一个元素,返回该元素
arr.join(); 以参数作为分隔符将数组成员组成字符串返回,默认用逗号分割
arr.concat(); 合并数组返回新数组
arr.shift(); 删除数组第一个元素,返回该元素
arr.unshift(); 在数组第一个位置添加元素,返回数组长度
arr.reverse(); 颠倒数组中元素的顺序,返回改变后的数组
arr.slice(); 截取数组中被选定的元素,返回选定元素,原数组不变
arr.splice(); 从数组中添加,删除元素,返回被删除的元素,直接改变原数组
arr.sort(); 对数组成员进行排序,改变原数组。只比较Unicode码,需要自己定义函数比较
arr.map(); 对数组所有成员一次调用一个函数,根据函数结果返回新的数组
arr.forEach(); 遍历数组的所有成员,执行操作,参数是一个函数,他接受三个参数,分别是当前位置的值,当前位置的编号和整个数组(IE9以下不支持)
arr.filter(); 按照条件过滤数组,返回符合条件的元素组成的新数组(IE9以下不支持)
arr.some(); 检测数组中的元素是否满足指定条件。(IE9以下不支持)
arr.every(); 检测数组所有元素是否都符合指定条件。如果有一个不满足则返回false。剩余元素不在检测(IE9以下不支持)
arr.reduce(); 一次处理数组的每一个成员,累计为一个值,从左往右。返回这个总值
arr.reduceRight(); 一次处理数组每个成员,累计为一个值,从右往左
arr.indexOf(); 返回给定元素在数组中第一次出现的位置,可以接收第二个参数表示搜索的起始位置
arr.lasrIdexOf(); 返回给定元素在数组中最后一次出现的位置,如果没有出现返回-1
Object对象
var o={} ; var o = new Object();
o.prototype; 返回原型对象
Object.keys(o); 遍历对象的可枚举属性
Object.getOwnPropertyName(o); 遍历对象不可枚举的属性
o.valueOf(); 返回当前对象对应的值
o.toString(); 返回当前对象对应的字符串形式
o.toLocaleString(); 返回当前对象对应的本地字符串形式
o.hasOwnProperty(); 判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性
o.isPrototypeOf(); 判断当前对象是否为另一个对象的原型
o.propertyIsEnumerable(); 判断某个属性是否可枚举