介绍

主要记录一些平时积累或者常用方法或者小技巧的集合。以便在以后用到还要重复写或者忘记。

还有就是如果遇到好的方法封装值得收藏进行收藏。这里主要是记录一些包含JavaScript的一些积累。没有什么样式和页面的操作。

可能会存在一些你认为不是很好或者用不到的。如果你有更好的请指正。交流分享,方便大家,一起进步。

1.根据文件名切换附件显示图片

        /**
*@method
*@param {name} 文件全称
*@returns 返回该文件类型对应的图片地址
*/
VerTypeToImage: function (name) {
var indexBegin = name.lastIndexOf(".");
var indexEnd = name.length;
var type = name.substring(indexBegin + 1, indexEnd);
switch (type) {
case "jpg":
return "/Content/images/area/NewDocument_Areas/icon_img.png";
case "word":
return "/Content/images/area/NewDocument_Areas/icon_word.png";
case "excel":
return "/Content/images/area/NewDocument_Areas/icon_excel.png";
case "ppt":
return "/Content/images/area/NewDocument_Areas/icon_ppt.png";
case "pdf":
return "/Content/images/area/NewDocument_Areas/icon_pdf.png";
case "zip":
return "/Content/images/area/NewDocument_Areas/icon_zip.png";
default:
return "/Content/images/area/NewDocument_Areas/icon_other.png";
}
}

2.根据文件类型实现上传文件限制特定类型

        /**
*@method
*@param {name} 文件全称
*@returns 返回该文件类型是否存在
*@desc turn:代表存在运行 false:代表不存在
*/
VerType: function (name) {
//运行通过的文件类型集合
var allowtype = ["doc", "docx", "xls", "xls", , "pdf", "ppt", "pptx", "zip", "jpg", "png", "jpeg", "bmp", "gif"]
var thisfiletype = name.substring(name.lastIndexOf(".") + 1, name.length).toLowerCase();
if (allowtype.inArray(thisfiletype) == -1) {
console.log("不存在返回")
return false;
} else {
console.log("存在返回")
return true;
}
}

3.数组扩展判断是否存在某个指定值

                            Array.prototype.inArray = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};

4.数组扩展实现删除指定值

                                //扩展数组删除
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}; Array.prototype.remove = function (val) {
var index = this.indexOf(val[0]);
if (index > -1) {
this.splice(index, 1);
}
};

5.数组扩展不允许添加重复元素

//重写Array中的pushDistinct方法,向数组中添加值不重复的元素
Array.prototype.pushDistinct = function (val) {
var index = this.indexOf(val);
if (index == -1) {
this.push(val);
}
};

6.冒泡排序

      /**
*@method
*@param {data} 要排序数组
*@returns 返回排序后的数组
*/
bubble: function(data) {
for (i = 0; i < data.length - 1; i++) {
for (j = i + 1; j < data.length; j++) {
var nowValue = data[i];
if (parseInt(nowValue) > parseInt(data[j])) {
var nextValue = data[j];
data[j] = nowValue;
data[i] = nextValue;
}
}
}
return data;
}

7.递归

      /**
*@method
*@param {n} 一个数组
*@returns 返回从1-n的和
*/
function sum(n) {
return sum(n - 1) + n;
}

8.跨域请求jsonp

             /**
*@method 跨域请求jsonp
*@param {url} 请求地址
*@param {data} 请求参数
*@param {func} 回调函数
* */
function(url, data, func) {
$.ajax({
url: url,
dataType: "jsonp",
jsonp: "callback", //需要和服务端回掉方法对应
cache: false,
data: data,
success: function(data) {
func(data);
}
});
}

9.原生js请求

             /**
*@method 原生js请求
*@param {type} 请求类型 get post
*@param {url} 请求地址
*@param {data} 请求数据
*@param {funSusses} 成功回调
*@param {funFailure} 失败回调
*@returns 返回从1-n的和
*/
function(type, url, data, funSusses, funFailure) {
//1.创建xhr对象
var xhr = null;
if(window.XMLHttpRequest) {
//标准浏览器
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP")
};
//2.准备发送前的参数
xhr.open(type, url, true);
//3.执行发送动作
if(type == "get") {
xhr.send(null);
} else if(type == "post") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
};
//第四步:指定回调函数
xhr.onreadystatechange = function() {
if(this.readyState == 4) {
if(this.status == 200) {
funSusses(xhr.responseText)
} else {
funFailure(xhr.responseText)
}
}
}; }

10.浏览器版本判断

这个为从网上收藏版本,复制的有点多

<script language="JavaScript">
<!--
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>){
return "Gecko";
} }
alert("您的浏览器类型为:"+getOs());
-->
</script>

【JavaScript】封装实用方法【持续积累】的更多相关文章

  1. javascript代码实用方法实现

    javascript代码实用方法实现   针对现在大家平时开发中,都会写一些重复性的js处理代码,今天总结了几个比较常用的方法实现.获取get请求参数.去字符串空格.   1.获取get请求中的参数  ...

  2. 拾遗----javascript一些实用方法

    1. join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. var ids = [];                 for(var i = 0 ...

  3. JavaScript封装一个函数效果类似内置方法concat()

    JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...

  4. JavaScript常见调试方法

    编辑导语:javascript调试方法,常见使用alert和console来定位出错和输出的结果是否是想要的,在chrome中,还可以使用断点来看运行的情况等,本文介绍了比较全面的调试方法,你知道co ...

  5. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  6. 使用jQuery封装实用函数

    一.引言 项目开发中,前端会有一个辅助工具类的js文件,比如cookie的操作,团队成员自己封装的方法.大多数时候,我们开发人员自己都是写一个全局函数,不考虑后期维护人员也会写相同的代码,然后造成代码 ...

  7. JavaScript封装

    js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...

  8. javaScript封装的各种写法

    在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...

  9. 像jQuery那样,采用链式方法,封装一个方法:CSS()

    主要思路就是:返回this对象,将所获取的操作元素放入一个数组中.在原型中添加拓展方法 <html> <head> <title></title> &l ...

随机推荐

  1. [LeetCode] Car Fleet 车队

    N cars are going to the same destination along a one lane road.  The destination is target miles awa ...

  2. excel写入操作

    字典列表类型数据写入excel. #导入xlwt库 import xlwt import os # 步骤1:获取excel文件的绝对路径 dirPath = os.path.join(os.getcw ...

  3. Android Studio 去除上方标题

    选中代码再Ctrl+shift+'/' 可加/***/注释 https://blog.csdn.net/wuqingsen1/article/details/78554117 styles.xml & ...

  4. Echarts 几个常用图

    最近公司业务上的 需求,要求做一些图表,我们技术框架上选择方便使用的Echarts. 下面是效果图: 下面是具体代码: <!DOCTYPE html> <html> <h ...

  5. 值得收藏!!javascript数组中多条对象去重方式,很实用!!!

    在数组中都是数字的时候很好去重,例如:var  arr=[1,2,2,2,3,4,5,4,5,3,6]:可以用两层for循环或者其他方式进行去重 我在这里也给出一个方法吧: Array.prototy ...

  6. Java面试中笔试题——Java代码真题,这些题会做,笔试完全可拿下!

    大家好,我是上海尚学堂Java培训老师,以下这些Java笔试真题是上海尚学堂Java学员在找工作中笔试遇到的真题.现在分享出来,也写了参考答案,供大家学习借鉴.想要更多学习资料和视频请留言联系或者上海 ...

  7. ThreadLocal及InheritableThreadLocal的原理剖析

    我们知道,线程的不安全问题,主要是由于多线程并发读取一个变量而引起的,那么有没有一种办法可以让一个变量是线程独有的呢,这样不就可以解决线程安全问题了么.其实JDK已经为我们提供了ThreadLocal ...

  8. SUSE12Sp3-MongoDB安装

    1.解压 sudo mkdir /usr/local/mongodb # 创建mongodb目录 将mongodb-linux-x86_64-suse12-4.0.6.tgz复制到/usr/local ...

  9. React中的通讯组件

    1.父传子:     传递:当子组件在父组件中当做标签使用的时候,给当前子组件绑定一个自定义属性,值为需要传递的数据     接收:在子组件内部通过this.props进行接收 2.子传父     传 ...

  10. 转:OAuth 2.0 介绍

    OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...