一、运算符
比较运算符:大于> 、 小于< 、 大于或等于>= 、 小于或等于 <= 、等于== 、 不等于!= 、绝对等===(值和类型全满足才等于)
逻辑运算符:&& = and =与都满足为true; || = or = 或 满足其一即可 为true ; not 非
条件运算符:三目运算 var val = condition :value1? value2; 条件condition为true时val为value1 反之为value2
二、字符串运算
indexOf方法:定位字符串中某一个指定的字符首次出现的位置,
用法:str.indexOf(searchvalue必需,index可选 0至len-1),当检索的字符串值没有出现,则该方法返回 -1;区分大小写。
lastIndexOf方法:返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
用法: str.lastIndexOf(searchvalue必需,index可选 0至len-1),方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的(检索顺序由尾向头部)。
substring方法:用于提取字符串中介于两个指定下标之间的字符。
用法:str.substring(start必需,stop可选);
返回值:一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop减 start,但是不包括stop处的字符。
eg:
<script type="text/javascript">
var str="Hello world!"
document.write(str.substring(3,7))//输出lo w
</script>
注:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
substr方法:可在字符串中抽取从 start 下标开始的指定数目的字符。
用法: str.substr(start必需,len可选);
返回值:一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
eg:
<script type="text/javascript">
var str="Hello world!"
document.write(str.substr(3,7))//输出lo worl
</script>
match方法:根据指定字符串或者正则表达式匹配返回字符,方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
用法:1、str.match(searchval) 2、str.match(regexp需对象)
返回值:存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g;反之为null
eg:
<script type="text/javascript">
var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))//输出1,2,3 正则找数字
</script>
replace方法:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
用法:strz.replace(Regexp对象\substr,replacestr)
返回值:一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
eg:
<script type="text/javascript">
var str="Hello Mary!"
document.write(str.replace(/Mary/, "Json"));//输出Hello Json
</script>
正则同理!
split方法:用于把一个字符串分割成字符串数组。
用法:str.split(sep指定字符或正则,howmany)
返回值:数组。通过在 sep指定的边界处将字符串 str 分割成子串创建的。返回的数组中的字串不包括 sep 自身。
但是,
join方法:用于把数组中的所有元素放入一个字符串(数组操作)。
用法:arr.join("/")
返回值:一个由数组值拼接而成的字符串,拼接字符为sep
eg:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join("/"));//输出George/John/Thomas
</script>
如果 sep 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
eg:
"2:3:4:5".split(":") //将返回["2", "3", "4", "5"]
"|a|b|c".split("|") //将返回["", "a", "b", "c"]
注:split() 执行的操作与 Array.join 执行的操作是相反的。
join方法:用于把数组中的所有元素放入一个字符串(数组操作)。
用法:arr.join("/")
返回值:一个由数组值拼接而成的字符串,拼接字符为sep
eg:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join("/"));//输出George/John/Thomas
</script>
toLocaleLowerCase+toLowerCase方法:用于把字符串中全部转化为小写
返回值:返回新的小写字符串
toLocaleUpperCase+toUpperCase方法:用于把字符串全部转化为大写
返回值:返回新的大写字符串
toString()方法:用于返回字符串
返回值:字符串
用法:strObject.toString()
Number()方法:用于将对象值转化为数字类型
返回值:数字型,
注:如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。
用法:Number(object)
三、数组运算
push方法:向数组末尾追加新值
返回值:数组
用法:arr.push(item);
concat方法:连接两个或多个数组。
返回值:返回一个新的数组
用法:arrObject.concat(arrItem);
join方法:用于把数组中的所有元素放入一个字符串(数组操作)。
用法:arr.join("/")
返回值:一个由数组值拼接而成的字符串,拼接字符为sep
eg:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join("/"));//输出George/John/Thomas
</script>
pop方法:用于删除数组并返回最后一个数组值
用法:arrObject.pop();
shift方法:用于删除数组并返回第一个数组值
用法:arrObject.shift()
reverse方法:用于颠倒数组的顺序,并返回新数组
用法:arrObject.reverse()
sort()方法:用于数组排序
返回值:新数组
用法:sort(可执行函数);
eg:
<script type="text/javascript">
function sortNumber(a,b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
</script>
splice方法:用于数组增加或删除项目
返回值:返回新数组
用法:splice(index索引,howmany数量,Item1新项目);可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
eg:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,3,"William")
document.write(arr)//输出George,John,Thomas,James,Adrew,Martin
//George,John,William,Martin
</script>
for{}方法:用于数组循环遍历
用法:for(var i = 0, len = arr.length; i < len; i++){//code}//最优雅,性能相对较佳
for(var i = 0; arr[i] != null; i++){//code}
arr.forEach(function(e){//code})
for(i in arr){//code}
arr.map(function(e){//code})
filter方法:用于过滤数值
未使用filter时eg:
var arrItem=[
{"name":"jim","age":"24"},
{"name":"json","age":"20"}
]
var arrNew = [];
for(var i = 0, len = arrItem.len; i < len; i++){
if(arrItem[i].name == "json"){
arrNew.push(arrItem[i]);
}
}
使用filter过滤器:
var arrItem=[
{"name":"jim","age":"24"},
{"name":"json","age":"20"}
]
var arrNew = arrItem.filter(function(item){
return item.name == "json";
});
}
四、JS错误捕捉
throw\try\catch方法:用于捕捉程序中出现的错误并对其进行处理操作
用法:try{//your code }catch(err){console.log(err.message)}
eg:
function testTry(){
try{
var val = document.getElementById('inputval').value;
if(val == "") throw "输入为空";
if(isNAN(val)) throw "不是数值型";
}catch(err){
alert("错误为:"+err)
}
}
function testTry();
五、Math对象
random方法:用于生成伪随机数,范围为[0,1)
用法:Math.random()
ceil方法:用于函数向上取整
用法:Math.ceil(num必需数值型);
eg:Math.ceil(0.6); //1 Math.ceil(0.4); //1
floor方法:用于函数向下取整
用法:Math.floor(num必需数值型);
eg:Math.floor(0.6);// 0 Math.floor(0.4); //0
round方法:四舍五入方法取最接近的整数
用法:Math.round(0.6);//1 Math.round(0.4);//0
parseInt方法:解析一个字符串,并返回一个整数,这里可以简单理解成返回舍去参数的小数部分后的整数。
用法:parseInt(X);
eg:parseInt(0.6);// 0 parseInt(2.4);//2 parseInt(-5.6);//-5
parseFloat方法:函数可解析一个字符串,并返回一个浮点数。
用法:parseFloat(String)
eg:parseFloat("10");//10 parseFloat("10.00");//10.00 parseFloat("It is 24");//NAN
toFixed方法:用于四舍五入指定保留值的小数位数
用法:toFixed(num)
六、节点操作
新增:document.createElement("DIV");//createTextNode文本
添加:parent.appendChild(DIV);
删除:parent.remove(child); //推荐:Element.innerHtml = ""; child.parentNode.removeChild(child);
修改:ClassName += "newClass"; setAttribute("class","classname"); indexOf配合替换动态修改
七、定时器
setTimeout、setInterval:都是定时器
用法;setTimeout(function,time); setInterval(function,time);
区别:setTimeout为延迟time时间再执行function,只执行一次;而setInterval为间隔time时间周期性执行function,执行次数不固定。另外此类函数尽量少用,定时器极消耗内存。
八、常用正则
1、去除字符串所有空格:str.replace(/\s/g,"");
2、只显示数字:value.replace(/[^d]/g,'');
3、只显示中文:value.replace(/[^u4E00-u9FA5]/g,'');
4、只显示数字与英文:value.replace(/[W]/g,'');
5、由字母,数字,下滑线组成: /^((\w+)(\.{1})(\w+))$/;
6、验证电话:^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
7、等等
mark下,方便coding的时候找到~~~~