<script>
字符串函数整理
charAt()返回在指定位置的字符.
var str='abcdef';alert(str[1]);alert(str.charAt(1));b
charCodeAt();返回在指定的位置的字符的 Unicode 编码。
var str='中国是一个字符串';alert(str.charCodeAt(0)); 返回中这个字的 Unicode 编码
fromCharCode() 将 Unicode 编码转为字符。 alert(String.fromCharCode(25105)); 我
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
var str='abac?def';alert(str.indexOf('?')); 4 第四的位置
lastIndexOf() 找最后一次出现的位置,没找到的话返回-1
var str='abacdefa'; alert(str.lastIndexOf('c'));
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var str='12,456 rt 77 99';alert(str.match(/\d+/g)); //12,456,77,99
replace() 字符串替换,区分大小写
var str='abAc';alert(str.replace('a', 'd')); //dbAc
slice()字符串截取
var str='abcdef';
alert(str.slice(1,3)); //bc
alert(str.slice(1)); //bcdef //不给结束位置,一直取到字符串结束为止
alert(str.substring(1,3));//bc
alert(str.substring(3));//def
alert(str.slice(-1));//f 负数会变成“倒数第n个”
split()把字符串分割为子字符串数组
var str='blue|leo|hello';alert(str.split('|')); //blue,leo,hello
var str='abcdef';
alert(str.substring(1,3)); //bc 不包含结束位置
alert(str.substr(1,3)); //bcd 包含结束位置
toUpperCase() 把字符串转换为大写
var str='Blue';alert(str.toUpperCase()); //BLUE
var str1='abc';var str2='342';var str3=str1+str2;alert(str3);//abc+342
var arr=[];arr.push('abcd');arr.push('123');arr.push('xcv');alert(arr.join(',')); //abcd123xcv
//关于数组的常用函数
//定义一个数组
var arr=[12,3,4,5]; //性能略高
var arr=new Array(12,3,4,5); //性能略低
arr.length=2;alert(arr);//(12,3)
toString() 方法可把数组转换为字符串,并返回结果。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var string=fruits.toString();alert(string);//Banana,Orange,Apple,Mango
join()把数组中的所有元素转换为一个字符串:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join('|'); alert(energy);//Banana|Orange|Apple|Mango
contact() 连接两个或更多的数组,并返回结果。
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai); //Cecilie,Lone,Emil,Tobias,Linus,Robin
push() 方法可向数组的末尾添加一个或多个元素,并返回新数组的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var push=fruits.push("Kiwi");//alert(push);//5
alert(fruits);["Banana", "Orange", "Apple", "Mango","Kiwi"];
pop();删除并返回数组的最后一个元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var push=fruits.pop();alert(push);//5
alert(fruits);//["Banana", "Orange", "Apple"]
reverse() 颠倒数组中元素的顺序。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();alert(fruits);// ["Mango","Apple","Orange","Banana"]]
slice()从某个已有的数组返回选定的元素
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3); alert(citrus);//["Orange", "Lemon"]
splice()删除元素,并向数组添加新元素。
var fruits = ["Banana", "Orange", "Apple", "Mango","Mango3","Mango4"];
fruits.splice(2,3);//从第二个元素开始删除,删除3个元素
alert(fruits);//["Banana", "Orange","Mango4"]
var fruits = ["Banana", "Orange", "Apple", "Mango","Mango3","Mango4"];
fruits.splice(2,3,"Lemon","Lemon");//插入
alert(fruits);//实例在数组第二个位置添加新元素,并且移除前三个元素:[添加]
["Banana", "Orange", "Lemon", "Lemon","Mango4"];
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。
var arr=['left', 'float', 'apple', 'content', 'text', 'zoom', 'Apple', 'Zoom'];arr.sort();
alert(arr);//Apple,Zoom,apple,content,float,left,text,zoom //默认把它当成字符串来处理
var arr=[12,78, 335, 21, 2];
//arr.sort(); //默认的情况下,他会把所有的东西都当做字符串处理
//从小到大排序
arr.sort(function (num1, num2){
if(num1<num2)
{
return -1; //第一个比第二个靠左
}
else if(num1>num2)
{
return 1; //右
}
else
{
return 0; //一样,随便你
}
});
//alert(arr);//2,12,21,78,335
//从大到小排序
var arr=[12,78, 335, 21, 2];
//arr.sort(); //默认的情况下,他会把所有的东西都当做字符串处理
arr.sort(function (num1, num2){
return num2-num1;
});
//alert(arr);//335,78,21,12,2
//js中文字符的排序
var arr=['张三', '石川', '刘伟', '莫涛', '杜鹏', '阿杜', '毕加索'];
arr.sort(function (str1, str2){
return str1.localeCompare(str2);
});
//alert(arr);//阿杜,毕加索,杜鹏,刘伟,莫涛,石川,张三
//setInterval()//间隔指定的毫秒数不停地执行指定的代码。
setInterval(function(){alert("Hello")},3000);//没三秒钟弹一次Hello
//clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。
var oDiv=document.getElementById('div1');
var timer=null;
timer=setInterval(function (){
if(oDiv.offsetLeft==300){clearInterval(timer);}
oDiv.style.left=oDiv.offsetLeft+10+'px';
}, 30);
//当离开左边距离是300就停止了运动了
//setTimeout() - 暂停指定的毫秒数后执行指定的代码 只执行一次
//clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。
//js正则表达式,模式修正符号
/*
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
*/
var str='sdf e443 fedef 55 66gg 333322312 dff 99';
var re=/\d+/g;
alert(str.match(re));//443,55,66,333322312,99 返回的是一个数组
//要是匹配到则返回null
var str='abacdAef';
alert(str.replace(/a/gi, 'T'));//TbTcdTef
//search
var str='abcdef';
alert(str.search(/c/));//2,找不到则返回-1
var str='abcdef';
var re=new RegExp('a', 'i');alert(re.test(str));//true
var str='abcdef';var re=/a/i;alert(re.test(str));//true
//就是中使用对象话调用函数
a={
val:9,
init:function(){
a.fc();
},
fc:function(){
alert('1');
}
}
a.init();//弹出一个1
function a(){
var a=arguments;
alert(a[0]+'**'+a[1]);//1**2
}a(1,2);
//关于构造函数中对 prototype 的理解
function Fish(name, color)
{
this.name=name;
this.color=color;
}
Fish.prototype.livesIn="water";//给这个类加一个属性
Fish.prototype.price=20;//给这个类加一个属性
var fish1=new Fish("mackarel", "gray");
var fish2=new Fish("goldfish", "orange");
var fish3=new Fish("salmon", "white");
alert(fish1.name+','+fish1.color+','+fish1.livesIn+','+fish1.price);//mackarel,gray,water,20
//使用prototype来给所有对象添加共用的函数
function Employee(name, salary)
{
this.name=name;
this.salary=salary;
}
//可以写成匿名函数
Employee.prototype.getSalary=function getSalaryFunction()
{
return this.salary;
}
/* 和上面函数是等价的
Employee.prototype.getSalary=function ()
{
return this.salary;
}
*/
Employee.prototype.addSalary=function addSalaryFunction(addition)
{
this.salary=this.salary+addition;
}
var boss1=new Employee("Joan", 200000);
var boss2=new Employee("Kim", 100000);
var boss3=new Employee("Sam", 150000);
alert(boss1.getSalary()); // 输出 200000
alert(boss2.getSalary()); // 输出 100000
alert(boss3.getSalary()); // 输出 150000
//把字符串换成json对象
//1 eval 格式
function strToJson(str){
var json = eval('(' + str + ')');
return json;
} //兼容性比较好
//2 new Function形式
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
//3 兼容性不太好
function strToJson(str){
return JSON.parse(str);
}
//使用jsonp 来进行跨域获取数据
$.ajax({
url:''+page,
type:'GET',
dataType:"jsonp",
jsonp:"callback",
jsonpCallback:"callback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success:function(res){
}
});
<?php
//对应的php代码
//$rows 返回数组
$jsonp = $_REQUEST["callback"];
$str = $jsonp . "(" .json_encode($rows).")";
echo $str;
?>
//关于js 中 跨域异步提交 值无法返回的解决方案,回调处理
//其中 callback 是回调函数
function bindUser(UserId,InviterId,callback)
{
var passUrl=licaiApiUrl+'activity.html?action=addUserVuserRelation&UserId='+UserId+'&InviterId='+InviterId;
$.ajax({
url: passUrl,
type: 'get',
dataType:"jsonp",
jsonp:"callback",
jsonpCallback:"callback",
success : function(minfo){
callback&&callback();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
});
}
function test(){
bindUser(userid,InviterId,function(){
window.location.href="/activity/broker/reward.html?userid="+userid+'&inviterId='+getQueryString('inviterId')});
}
js 回调函数返回值
function abc(a,callback){
if(a==1)callback(2);
}
abc(1,function(c){alert(c);});//c=2
function f(x) {
var g = function () { return x; }
return g;
}
var h = f(1);
//console.log(h);
alert(h()); //1
</script>