javascript对象合并或追加属性的方法
function objMerger(obj1, obj2){
for(var r in obj2){
//eval("obj1."+r+"=obj2."+r);
//或
obj1[r] = obj2[r]; //obj1.r或obj2.r错误的
}
return obj1;
}
var obj = {a:'aa',b:'bb'};
var shuxing = {c:'c1',d:'d1',e:55}
obj = objMerger(obj, shuxing);
console.log(obj);
console.log(obj.a+'__'+obj['a']); //这是正确的;obj[a]错误的
上面的例子中:r是一个变量,a和b是变量名字,故变量名字可以直接用.或['变量名字'],而变量只能用[变量]
//验证字符个数
function checkNum(chars){
var sum = 0;
for(var i=0;i<chars.length;i++){
var c = chars.charCodeAt(i);
if((c>=0x0001 &&c<=0x007e)||(0xff60<=c && c<=0xff9f)){
sum++;
}else{
sum+=2;
}
}
return sum;
}
//判断input只能输入数字
function IsNum(e) {
var k = window.event ? e.keyCode : e.which;
if (((k >= 48) && (k <= 57)) || k == 8 || k == 0) {
} else {
if (window.event) {
window.event.returnValue = false;
}
else {
e.preventDefault(); //for firefox
}
}
}
//编码url
function getEscapeParamStr (jsonData){
if (!jsonData) return '';
var qarr = [];
for(i in jsonData){
qarr.push(i+"="+encodeURIComponent(jsonData[i]));
}
return qarr.join('&');
}
/*
* 判断对象是否为空
* return boolean 为空返回true,否则返回false
* (例如为obj = {} 或 obj = null都是为空的)
*/
function isNullObject(object){
if(!object)return true;
for(var i in object){
return false;
}
return true;
}
/**
* 合并对象,把对象obj2合并到对象obj1上
* @param obj1
* @param obj2
* @returns
*/
function objMerger(obj1, obj2){
for(var r in obj2){
obj1[r] = obj2[r];
}
return obj1;
}
/**
* 输出对象属性个数
* @param obj
* @returns {Number}
*/
function countObject(obj){
var num = 0;
if(!obj)return num;
for(var i in obj){
num ++;
}
return num;
}
function checkTime (startTime,endTime,type){
if(!startTime){
jsAlert('起始日期不能为空');
return false;
}
if(!endTime){
jsAlert('结束日期不能为空');
return false;
}
if( startTime > endTime){
jsAlert('请输入正确的日期范围');
return false;
}
var myDate = new Date();
var date = myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate();
//当前时间和开始时间相差天数
var day = dateDiff('D',startTime,date);
if(day > 180){
jsAlert('开始时间在180天内');
return false;
}
//结束时间和开始时间相差天数
day = dateDiff('D', startTime, endTime);
if('list' == type){
if(day > 14){
jsAlert('开始时间结束时间之间不能超过2周');
return false;
}
}else if('export' == type){
if(day > 31){
jsAlert('导出时时间范围在1个月(31)天内');
return false;
}
}
return true;
}
//计算日期差
function dateDiff(interval, date1, date2)
{
var objInterval = {
'D':1000 * 60 * 60 * 24,
'H':1000 * 60 * 60,
'M':1000 * 60,
'S':1000,
'T':1
};
interval = interval.toUpperCase();
var dt1 = new Date(Date.parse(date1.replace(/-/g, '/')));
var dt2 = new Date(Date.parse(date2.replace(/-/g, '/')));
try
{
return Math.round((dt2.getTime() - dt1.getTime()) / eval('objInterval.'+interval));
}
catch (e)
{
return e.message;
}
}
autoClearCache();
//js刷新页面js缓存的方法
function autoClearCache(){
var clearCacheHtml= ''
+'<META HTTP-EQUIV="pragma" CONTENT="no-cache">'
+'<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">'
+'<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">'
+' <META HTTP-EQUIV="expires" CONTENT="0"> ';
$('head').append(clearCacheHtml);
}
//动态的引入js文件或在一个js文件中引入另一个js文件
//document.write("<script type='text/javascript' language='javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' ></script>"); //window.location.reload();
var src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
LoadJS(src);
init();
var num = 0;
function init(){
num++;
var datas = {_t:0,category:9999,mid:3646697885979296,soururl:'',srvid:''};
datas.reason ='找不到张艺谋”,谁信?'+num;
var url = "http://hot.weibo.com/ajax/addone?__rnd=1384929440619";
$.post(url,datas,function(msg){
console.log(num);
if(num < 10){
setTimeout(init,800);
}
});
} function LoadJS(src){
var headObj = document.getElementsByTagName("head")[0];
srciptObj = document.createElement("script");
srciptObj.language = "javascript";
srciptObj.type = "text/javascript";
srciptObj.src = src;
headObj.appendChild(srciptObj);
}
//检测对象是否为空
function type(o){
return (o === null) ? "null" : (typeof o);
}
// 安全检测JavaScript基本数据类型和内置对象
// 参数:o表示检测的值
/* 返回值:返回字符串"undefined"、"number"、"boolean"、
"string"、"function"、"regexp"、"array"、"date"、"error"、"object"或"null" */
function typeOf(o){
var _toString = Object.prototype.toString;
// 获取对象的toString()方法引用
// 列举基本数据类型和内置对象类型,可以进一步补充该数组的检测数据类型范围
var _type ={
"undefined" : "undefined",
"number" : "number",
"boolean" : "boolean",
"string" : "string",
"[object Function]" : "function",
"[object RegExp]" : "regexp",
"[object Array]" : "array",
"[object Date]" : "date",
"[object Error]" : "error"
}
return _type[typeof o] || _type[_toString.call(o)] || (o ? "object" : "null");
} //应用示例:
var a = Math.abs;
alert(typeOf(a)); //"function"
日期时间转换(int类型的时间戳转换为年月日时分秒)
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
}

cache.ltime = new Date(parseInt(detail.created_time)*1000).toLocaleString().replace(/[年月]/g,'/').replace(/[日]/g,'');

js整理常用方法的更多相关文章

  1. js的常用方法和对象学习

    js的常用方法和对象学习String对象:操作字符的. 使用:字符串.函数名. 大小写转换: toUpperCase() 转换大写 toLowerCase() 转换小写 function testSt ...

  2. js 的常用方法和对象

    每日分享: 加油!你一定可以!你是最牛逼的!!!-------------------------------------------------------------------------- - ...

  3. js数组常用方法整理

    学疏才浅,若有不对的地方,希望大家可以帮忙指正出来. 1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度.原数组改变. 2. Array.pop(),删除并返回数组的最 ...

  4. Dynamics CRM 日常使用JS整理(二)

    BPF(Business Process Flow)相关的JS 为Stage添加changed或者selected事件: function fnOnLoad() { Xrm.Page.data.pro ...

  5. Dynamics CRM 日常使用JS整理(一)

    整理下平时CRM开发中用到的一些基本的js操作 取值: var oResult = Xrm.Page.getAttribute(sFieldName).getValue(); var oResult ...

  6. Underscore.js 入门-常用方法介绍

    Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库作为自 ...

  7. js整理

    Js脚本语音 网页里面使用的脚本语音 基础语法 注释语法  单行注释// 多行注释/**/ 嵌入js代码  尽量靠下写  用<script type="text/javascript& ...

  8. Vue.js 整理笔记

    以前我们用Jquery进行dom的操作,虽然熟悉后开发效率很高,但是如果多个控件的相互操作多的情况下,还是会乱.相比之下,Vue的使用更加清晰,通过虚拟dom将数据绑定,而且组件化和路由的帮助下,让整 ...

  9. common.js js中常用方法

    //创建CSS样式段 //classid: CSS样式段ID//font: 字体//size: 字体大小//color: 字体颜色//style: 字体风格function FCMakeCSSClas ...

随机推荐

  1. Wiz开发 定时器的使用与处理

    这只是一些代码片段,由于Wiz开发的资料实在不多,而且内容都不够新. 这里的代码主要参考Tools.Timer这个插件,但是由于内部实现的很多变化,Tools.Timer这个插件基本上已经无法使用了. ...

  2. (一)学习C#之浮点类型float小结

    类型:float 大小:32位 范围a:±3.4E38  MSDNhttp://msdn.microsoft.com/zh-cn/library/b1e65aza.aspx 范围b: ±1.5E45~ ...

  3. (转载)php如何判断IP为有效IP地址

    (转载)http://www.kuitao8.com/20130918/1376.shtml 多数人看到这篇日志,第一印象肯定是以为是要讲如何通过正则表达式来判断. 非也,在php5.2.0之后,有专 ...

  4. Hessian介绍

    Hessian是什么   Hessian类似Web Service,是一种高效简洁的远程调用框架. Hessian的主页:http://hessian.caucho.com/   有关网上的对Hess ...

  5. Java面试题:n=2\n1*2*5*6\n--3*4\n\nn=3\n1*2*3*10*11*12\n--4*5*8*9\n----6*7\n如何实现如上结构的数据

    今天学长在面试的时候遇到了一道题,然后让大家做一做. 在不看下面的答案之前,悠闲的朋友们一起来抖动一下大脑吧! 以下是我的想法: import java.util.Scanner;public cla ...

  6. 初涉C#防止黑客攻击站短

    一.同一个IP如果在一分钟内连续发送5个站短可以认为是不正确的,原因有2方面: 1.发站短的页面是有点击按钮,点击按钮后马上按钮会变为不可点击,所以在前端要防止点击一次触发多次的情况 2.发送短信的U ...

  7. 系统虚拟化学习笔记——PCI设备

    内容摘自<系统虚拟化:原理与实现> PCI 总线架构 PCI总线是典型的树结构.把北桥中host-PCI桥看做根,总线中其他PCI-PCI桥,PCI-ISA桥(ISA总线转PCI总线桥)等 ...

  8. uva 2218 Triathlon

    题意:铁人三项赛,给定每个选手游泳,自行车,赛跑三个阶段的平均速度,不知道每段比赛的路程,询问当前这个选手能否胜利. 思路:把题意转化为一个不等式,设比赛长度是1,如果i要战胜j,x.y分别是第一阶段 ...

  9. CentOS安装nvidia显卡驱动

    1.下载 nvidia 相应的驱动: 2.修改/etc/modprobe.d/blacklist.conf文件,在里面加入blacklist nouveau. 3.重建image $ mv /boot ...

  10. Android 开发Project中各个目录和文件的介绍

    如上图标号: 存放java文件的文件夹“src”: 由aapt工具根据应用中的资源文件自动生成的R.java文件,以及buildConfiger.java文件,这两个文件最好不要去修改: 存放各种资源 ...