【JavaScript】封装实用方法【持续积累】
介绍
主要记录一些平时积累或者常用方法或者小技巧的集合。以便在以后用到还要重复写或者忘记。
还有就是如果遇到好的方法封装值得收藏进行收藏。这里主要是记录一些包含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】封装实用方法【持续积累】的更多相关文章
- javascript代码实用方法实现
javascript代码实用方法实现 针对现在大家平时开发中,都会写一些重复性的js处理代码,今天总结了几个比较常用的方法实现.获取get请求参数.去字符串空格. 1.获取get请求中的参数 ...
- 拾遗----javascript一些实用方法
1. join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. var ids = []; for(var i = 0 ...
- JavaScript封装一个函数效果类似内置方法concat()
JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...
- JavaScript常见调试方法
编辑导语:javascript调试方法,常见使用alert和console来定位出错和输出的结果是否是想要的,在chrome中,还可以使用断点来看运行的情况等,本文介绍了比较全面的调试方法,你知道co ...
- JavaScript 字符串实用常操纪要
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- 使用jQuery封装实用函数
一.引言 项目开发中,前端会有一个辅助工具类的js文件,比如cookie的操作,团队成员自己封装的方法.大多数时候,我们开发人员自己都是写一个全局函数,不考虑后期维护人员也会写相同的代码,然后造成代码 ...
- JavaScript封装
js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...
- javaScript封装的各种写法
在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...
- 像jQuery那样,采用链式方法,封装一个方法:CSS()
主要思路就是:返回this对象,将所获取的操作元素放入一个数组中.在原型中添加拓展方法 <html> <head> <title></title> &l ...
随机推荐
- nginx连接数优化
一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计 ...
- List集合和JSON互转工具类
public class JsonListUtil { /** * List<T> 转 json 保存到数据库 */ public static <T> String list ...
- 用js限制网页只能在微信内置浏览器或支付宝内置浏览器中打开
function is_weixinOrAli(){ var ua = navigator.userAgent.toLowerCase(); //判断浏览器的类型 if (ua.match(/Micr ...
- LoadRunner(一)——性能测试基础及性能指标概述
参考学习感谢:<精通软件性能测试与LoadRunner实战> 一.典型的性能测试场景 某个产品要发布了,需要对全市的用户做集中培训.通常在进行培训的时候,老师讲解完成一个业务以后,被培训用 ...
- C语言复习1_变量与数据类型
变量命名规则: 1.变量名的首字母或下划线(不能是其他特殊符号) 2.变量名的其他字母包含下划线.数字 和字母 3.不能使用关键字 基本数据类型 分为数值型和非数值型,其中数值型分为整型和非整型 整型 ...
- sha256 js 前端加密
<html> <head></head> <body> <script type="text/javascript" src= ...
- [SQL]LeetCode596. 超过5名学生的课 | Classes More Than 5 Students
SQL架构 Create table If Not Exists courses (student varchar(), )) Truncate table courses insert into c ...
- [Swift]LeetCode878. 第 N 个神奇数字 | Nth Magical Number
A positive integer is magical if it is divisible by either A or B. Return the N-th magical number. ...
- 巡风源码阅读与分析--querylogic函数
文件位置:views/lib/QueryLogic.py Querylogic() # 搜索逻辑 def querylogic(list): query = {} if len(list) > ...
- Mysql的两种“超过多少次”写法(力扣596)
题目: 有一个courses 表 ,有: student (学生) 和 class (课程). 请列出所有超过或等于5名学生的课. 例如,表: +---------+------------+ | s ...