js代码

js批量上传文件

守給你的承諾、 提交于 2020-01-03 08:33:14
html代码: <input type="file" id='upload' name="upload" multiple="multiple" onchange="uploadFile(this);" style="display:none;" /> <button id='uploadbtn' class="rscUploadBtn" type="button" onclick="document.getElementById('upload').click();" >选择上传文件</button><br /> js代码: //file为input[type=file]元素,例如:onchange="uploadFile(this);" function uploadFile(file) { if (file && file.files && file.files.length > 0) { //创建一个FormData空对象,然后使用append方法添加key/value var fd = new FormData(); for (var i = 0; i < file.files.length; i++) fd.append('file['+i+']',file.files[i]); fd.append("action", "filelistup"); var xhr =

JS代码风格指南

故事扮演 提交于 2020-01-03 01:41:42
一.基本格式 缩进 建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换 分号 不要省略分号,防止ASI(自动插入分号)错误 行宽 每行代码不超过80个字符,过长应该用操作符手动断行 断行 操作符在上一行末尾,且下一行缩进2级,如果是赋值语句,还应该和等号后面部分对齐 空行 函数声明与函数声明、变量声明与函数声明、函数内部的逻辑块之间都应该有空行隔开 作者尼古拉斯还建议在流程控制块顶部留一个空行,但给的例子不是很明确 命名 变量名/函数名:Camel(驼峰)规则,首词首字母小写,后续词首字母大写,其余部分小写 常量名:C语言式,全大写,下划线分词 构造函数:Pascal规则,所有词首字母大写,其余部分小写 字面量 字符串:双引号包裹,断行用[+]操作符, 不要 用\转义字符 数值: 不要 省略小数点前后的部分, 不要 用八进制形式 Null:只把null当作Object的占位符, 不要 用来检测形参,也 不要 用来检测未初始化的变量 Undefined:应该把所有对象都初始化为null,以区分未定义和未初始化 对象字面量/数组字面量: 不要 用构造函数方式声明对象和数组 二.注释 P.S.书中有一句非常经典的解释: Appropriately written comments help tell the story of code, allowing other

js函数定义及一些说明

淺唱寂寞╮ 提交于 2020-01-03 01:00:58
1.javascript定义函数的三种方法 一、function语句//这个方法比较常用 function fn(){   alert("这是使用function语句进行函数定义"); } fn(); 二、Function()构造函数 var F = new Function("a","b","alert(a+b)"); F(a,b); 其实相当于如下代码: function F(a,b){   alert(a+b); } 三、函数直接量//这个方法比较常用 var zhenn = function(){   alert("zhenn"); } zhenn(); 虽然函数直接量创建的是未命名函数,但是它的语法也规定它可以指定函数名,这在编写调用自身的递归函数时非常有用,例如: var f = function fact(x) { if (x <= 1) { return 1; } else { return x * fact(x - 1); } }; 注:它并没有真正创建一个名为fact()函数,只是允许函数体用这个名字来引用自身。JavaScript1.5之前的版本中没有正确实现这种命名的函数直接量。 2.其他说明 一、构造函数 其实从字面上理解,构造函数似乎也是函数,其实它并不是函数,而只是一种函数模型。 要实例化才能运行,就跟我们写的类一样,要new一下才能用。

js Function 函数

狂风中的少年 提交于 2020-01-03 00:59:58
函数 var abs = function (x) { if (x >= 0) { return x; } else { return -x; } }; 函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。 在这种方式下,function (x) { ... }是一个匿名函数,它没有函数名。但是,这个匿名函数赋值给了变量abs,所以,通过变量abs就可以调用该函数 如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined。 要避免收到undefined,可以对参数进行检查: function abs(x) { if (typeof x !== 'number') { throw 'Not a number'; } if (x >= 0) { return x; } else { return -x; } } arguments 它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array: function foo(x) { alert(x); // 10 for (var i=0; i<arguments.length; i++) { alert(arguments[i]); // 10, 20, 30 } }

廖雪峰js教程笔记 1

喜你入骨 提交于 2020-01-03 00:53:22
遍历 Array 可以采用下标循环,遍历 Map 和 Set 就无法使用下标。为了统一集合类型,ES6标准引入了新的 iterable 类型, Array 、 Map 和 Set 都属于 iterable 类型。 具有 iterable 类型的集合可以通过新的 for ... of 循环来遍历。 然而,更好的方式是直接使用 iterable 内置的 forEach 方法,它接收一个函数,每次迭代就自动回调该函数。以 Array 为例: var a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象本身 alert(element); }); 注意 , forEach() 方法是ES5.1标准引入的,你需要测试浏览器是否支持。 Set 与 Array 类似,但 Set 没有索引,因此回调函数的前两个参数都是元素本身: var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { alert(element); }); Map 的回调函数参数依次为 value 、 key 和 map 本身:

Js 取上个月日期【填坑】

冷暖自知 提交于 2020-01-02 20:28:42
工作写代码的时候,有一个地方要根据 年月 来作为查询条件 一开始是先new Date()获得date对象 再利用他的set方法,将年月set进去 var date = new Date ( ) ; date. setFullYear ( 2019 ) ; date. setMonth ( 10 ) ; -- 此处的month范围是(0~11),说明我现在设置为11月份 然后我认为应该得到应该是 2019-11 这个日期的对象 但是!!! 出了鬼。。 返回的是 2019-12-01(第二行) …… 反复折腾了好久,还是未果,突然看到今天是2019-12-31 心里在想,马上又是新的一年里,自己还是小白白,啥也没学到,好难好难。。。 可是,,,咦---- 不对! 如果今天是31号,我这个date难不成设置成2019-11-31了?(由于我只设置了年和月,日没有设置,所以日应该是初始化时候的) 发现疑问点后,我又开始搜资料 https://www.cnblogs.com/jc2182/p/11273954.html 可惜没有设置日的方法,这种方法应该不行了 网上继续百度其他方法,终于最后找到了一位老哥的方法(直接利用构造方法) /** * 获取上个月月底日期 */ function getLastMonthAndDay() { var nowDate = new Date ( ) ;

js清除浏览器缓存的几种方法

泄露秘密 提交于 2020-01-02 09:09:20
有时在后台修改了代码,再在浏览器上运行会发生显示的还是未修改之前的页面,所以就在网上查找清除浏览器缓存的方法,主要都是在浏览器的设置里删除缓存,然后我找到了使用代码在自己的代码中使用的清除缓存的方法,选择了浏览量最高的博客作为转载,以下为内容: 关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。今天主要介绍清除缓存的几种方法。 清理网站缓存的几种方法 meta方法 //不缓存 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> 清理form表单的临时缓存 <body onLoad="javascript:document.yourFormName.reset()"> 其实form表单的缓存对于我们书写还是有帮助的,一般情况不建议清理,但是有时候为了安全问题等,需要清理一下! jquery ajax清除浏览器缓存 方式一

跨域详解

半腔热情 提交于 2020-01-02 05:49:24
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http://www.domain.com/a.js http://www.domain.com/b.js 同一域名,不同文件或路径 允许 http://www.domain.com/lab/c

前端解决跨域的九种方法

允我心安 提交于 2020-01-02 05:44:35
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1、 资源跳转:A链接、重定向、表单提交 2、 资源嵌入: < link>、 < script> 、 < img>、 < frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3、 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1、Cookie、LocalStorage 和 IndexDB 无法读取 2、 DOM 和 Js对象无法获得 3、 AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http://www.demo.com/a.js http://www.demo.com/b.js 同一域名,不同文件或路径 允许 http://www.demo.com/lab/c.js

js跨域请求解决方案

*爱你&永不变心* 提交于 2020-01-02 05:42:03
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http://www.domain.com/a.js http://www.domain.com/b.js 同一域名,不同文件或路径 允许 http://www.domain.com/lab/c