var newObject = JSON.parse(JSON.stringify(oldObject));
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
var fun1 = function (p1, p2, p3) {
alert('接收的参数长度为:' + arguments.length);
//遍历传入的参数
for (var i in arguments) {
//使用索引的方式获取参数值
console.log(arguments[i]);
}
}
alert('fun1的参数长度为:'+fun1.length);
fun1('a', 2, 'c');
function trim(str) {
if (str & typeof str === "string") {
return str.replace(/(^s*)|(s*)$/g,""); //去除前后空白符
}
}
typeof形式,可以判断function的类型;在判断除Object类型的对象时比较方便。
判断已知对象类型的方法: instanceof,后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
-
异步编程?
-
方法1:回调函数,优点是简单、容易理解和部署,缺点是不利于代码的阅读和维护,各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数。
-
方法2:时间监听,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以“去耦合”(Decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。
-
方法3:发布/订阅,性质与“事件监听”类似,但是明显优于后者。
-
方法4:Promises对象,是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。
简单说,它的思想是,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。
-
-
降维数组
var arr=[[1,2],[3,4]];
function Jw(obj){
return Array.prototype.concat.apply([],obj);
}
Jw(arr);
function(url, fn) {
var obj = new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据
obj.open('GET', url, true);
obj.onreadystatechange = function() {
if(obj.readyState == 4 && obj.status == 200||obj.status == 304) {
loading.style.display = "none"
} else {
alert("不能点击,哈哈哈!");
}
};
obj.send(null);
}
$.ajax({
url:'http://192.168.31.227/sfytjjk/wdaj/wdla.php',
type:"post",
timeout:5000,
async:true,
cache:true,
data:"user_id=12&page=0",
dataType:"json",
contentType:"application/x-www-form-urlencoded",
beforeSend:function(XMLHttpRequest){
console.log(this);
$("#inp").val("正在获取数据...");
},
success:function(data){
console.log(data);
$(".display").html("获取到的数据:</br>");
$(".display").append("总条数:"+data.data.all_count);
$("#inp").val("点击获取数据");
},
complete:function(XMLHttpRequest,textStatus){
if(textStatus=='timeout'){
var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
xmlhttp.abort();
$(".box").html("网络超时!");
}
$("#inp").val("点击获取数据");
},
error:function(XMLHttpRequest, textStatus){
console.log(XMLHttpRequest); //XMLHttpRequest.responseText XMLHttpRequest.status XMLHttpRequest.readyState
console.log(textStatus);
$(".box").html("服务器错误!");
}
});
$.post("check.php",{},function(data){
jj=data;
$("#tname").html(data);
}).success(function() {
alert("second success");
}).error(function(a) {
alert("error"+a.ResponseText);
alert(json_last_error ());
}).complete(function() {
alert("complete");
});