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. (转) mysql数据库引擎:MyISAM和InnoDB(性能优化)

    转自 http://yuwensan126.iteye.com/blog/1138022 Mysql 数据库中,最常用的两种引擎是innordb和myisam.Innordb的功能要比myiasm强大 ...

  2. WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)

    转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...

  3. 将android中的sample例子到eclipse中

    SDK中带有很多的例子,那么我们怎么样导入到eclipse中呢?方法很简单,如下: 1. 新建android工程,选择Create project from existing sample, 2. 选 ...

  4. CF 560e Gerald and Giant Chess

    题意:在h×w的棋盘中从左上角走到右下角,只能向右或向下走,有n个点不可以经过,一共有多少种方案. 解法:dp.先对点按横坐标排序(横坐标相等按纵坐标,也可以反过来)dp[i]表示不经过其他非法点走到 ...

  5. cocos2d-x的helloLua例子函数名定义误导初学者

    初次研究cocos2d-x, cocos2d-x支持lua是一个很不错的功能,使用lua来开发有个最大的好处就是不用每次改了游戏代码都编译,大多数情况下改了脚本直接运行程序就可以了,发布更新时也不用更 ...

  6. Good practice release jar to Nexus

    Step  suppose you need to develop a feature,when you finish the feature ,you need to release the jar ...

  7. POJ2778&HDU2243&POJ1625(AC自动机+矩阵/DP)

    POJ2778 题意:只有四种字符的字符串(A, C, T and G),有M中字符串不能出现,为长度为n的字符串可以有多少种. 题解:在字符串上有L中状态,所以就有L*A(字符个数)中状态转移.这里 ...

  8. FZU 2176 easy problem (DFS序+树状数组)

    对于一颗树,dfs遍历为每个节点标号,在进入一个树是标号和在遍历完这个树的子树后标号,那么子树所有的标号都在这两个数之间,是一个连续的区间.(好神奇~~~) 这样每次操作一个结点的子树时,在每个点的开 ...

  9. hdoj 2091 空心三角形

    空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. [iOS基础控件 - 4.1] APP列表

    需求 1.以N宫格的形式展示应用信息 2.APP信息包括图标.名字.下载按钮 3.使用尽可能少的代码,从plist读取app信息,计算每个app图标的位置尺寸信息     A.思路 1.UI布局:N宫 ...