var

ES6学习(1)

北城余情 提交于 2020-04-02 08:09:28
let 和 const 命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。for循环的计数器,就很合适使用let命令。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是10。 如果使用let,声明的变量仅在块级作用域内有效,最后输出的是6。 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。你可能会问,如果每一轮循环的变量i都是重新声明的,那它怎么知道上一轮循环的值

js导出Excel表格

北慕城南 提交于 2020-04-02 05:39:11
js导出Excel表格   直接上代码:   红色部分:如果表格数据中有“ 1/1 ”这样的值,会在导出的Excel中转化为日期“ 1月1日 ”,所以才加上了红色那两句。如果返回值中没有这样的格式,红色部分可以不写。 1 //Excel下载 2 function base64(content) { 3 return window.btoa(unescape(encodeURIComponent(content))); 4 } 5 function exportOffice(dom, tableID, fName) { 6 var type = 'excel'; 7 var table = document.getElementById(tableID); 8 var excelContent = table.innerHTML; 9 var ddd="<td style=\"mso-number-format:'\\@';\">"; 10 var result=((excelContent).toString()).replace(/<td(.*?)>/g,ddd); 11 console.log(result); 12 var excelFile = "<html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn

bash cookbook

筅森魡賤 提交于 2020-04-01 14:12:41
目录 简介 变量 静态变量 变量操作 数组 应用 四则运算 条件测试 整数测试 文件测试 字符测试 组合条件测试 选择语句 循环语句 for--有限循环 while--无线循环 until continue 函数 格式化输出 echo printf echo printf 其他 位置参数 $@ $* $# 如果命令运行失败让脚本退出执行 若有用未设置的变量即让脚本退出执行 简介 GNU Bash ,又名 Bourne Again Shell。它最初发布于 1989 年,并且轻松成长为 Linux 世界中使用最广泛的 shell,甚至常见于其他一些类 Unix 系统当中。 shell解析命令行的过程以及eval命令 变量 shell中的变量都是全局变量,函数中的变量需要使用 local 将其变成局部变量,防止污染函数外的变量。 不过从严格意义上,Bash没有变量类型。Bash中的变量,在运行的时候会被展开成其对应的值(字符串)。 静态变量 在执行过程中不能改变的变量 readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group” 变量操作 大小写切换 ^大写,,小写, ~大小写切换 重复一次只匹配一个字母,重复两次则应用于所有字母。 HI=HellO echo "$HI" # HellO echo ${HI^}

前端常见面试题

半腔热情 提交于 2020-04-01 07:36:36
一.JS (1) 在函数中赋值,多次赋值,出现问题 var a = b = c = 10; console.log(delete a); //false console.log(delete b); //true console.log(delete c); //true function fn(){ var a = b = c = 10; } fn(); console.log(b); //10 console.log(c); //10 console.log(a); //a is not defined (2)数组的length 赋值给变量后,无法判断数组长度 var arr = [1,2,3], i = 0, len = arr.length; arr.length = 2; console.log(len); //3 console.log(arr.length); //2 (3) 截取字符 console.log('abcdefg'.substring(4)) // efg (4) 统计一个字符里出现最多的字母和出现次数 var str = 'asdfssaaasasasasaa'; var json = {}; for (var i = 0; i < str.length; i++) { if(!json[str.charAt(i)]){ json[str.charAt

css 动态换肤

青春壹個敷衍的年華 提交于 2020-04-01 07:01:43
今天朋友问我如果动态调用皮肤,我也没有做过,只好到网上搜索了一下,然后自己分析了一下: 原理是利用js动态加载css文件,然后把信息用cookie保存到客户段。这样就可以使用户下次访问的时候显示的格式就是上次设计的。不过如果用户的浏览器禁止cookie的写入(mafee 8.5 就禁止cookie的写入),这个就是问题了。。。。。希望大虾们能够解决一下。。。 提醒一下(copy代码的时候不要忘记自己创建 css文件,不然就会没有效果的 -v-) <html> <head> <link id="skin" rel="stylesheet" type="text/css" /> <title>换肤技术</title> <script language="javascript" type="text/javascript"> function SetCookie(name,value){ var argv=SetCookie.arguments; var argc=SetCookie.arguments.length; var expires=(2<argc)?argv[2]:null; var path=(3<argc)?argv[3]:null; var domain=(4<argc)?argv[4]:null; var secure=(5<argc)?argv[5]:false;

JavaScript定时器分析

会有一股神秘感。 提交于 2020-04-01 06:39:37
一、事件循环 JavaScript是单线程,同一个时间只能做一件事情,所以执行任务需要排队。如果前一个耗时很长,那么下一个只能等待。 1)两种任务 为了更好的处理任务,JavaScript语言的设计者将任务分为两种:同步任务(synchronous)与异步任务(asynchronous)。 同步任务 :在主线程上排队执行的任务。 异步任务 :放在“任务队列”(task queue)中,只有当主线程空了,才会将“任务队列”中的任务放到主线程中。 这就是JavaScript的运行机制,这个过程会不断重复,这个机制叫 事件循环 (Event Loop)。 2)事件循环 事件循环模型可以用下图描述,图片来自Philip Roberts的演讲《Help, I’m stuck in an event loop》: 1. “WebAPIs” 内的就是异步任务,包括DOM事件、Ajax和setTimeout。 2. “callback queue” 内的是一个任务队列,包括click、load、done。 3. “stack” 内的就是同步任务,只有当“stack”内的清空后,才会去轮询任务队列。 下面是一段代码说明,图片中的内容是打印结果,没什么悬念。 console.log('Hi'); setTimeout(function() { console.log('there'); },5000)

我的模块加载系统 v22

落爺英雄遲暮 提交于 2020-04-01 06:15:43
时隔差不多两个月,积累了许多改进,升级到v22。主要改进点如下: 进行瘦身,移除本地储存 IE6789的HTML5新标签支持列表,添加一个 m标签 loadJS内容方法,在动态插入script节点,发现最新的firefox Nightly做了些改动,如果head还没有解析完就插入节点,那么新script会触发onerror事件。补救措施,针对firefox使用html.insertBefore(node, head)。chrome不支持head.insertBefore(node, null),第二参数必须是节点,因此firefox外浏览器统一使用 head.insertBefore(node, head.firstChild)。 getCurrentScript方法进行增强,现在支持对chrome取正在解析的节点,详见源码。如此一来,除safari外,都能立即确认模块ID与script节点的对应关系。 修正parseURL转"mass.draggable"为url出错的BUG。 升级$.log,让它支持更古老的opera。 升级$.error,对异常进行包装,防止中文乱码。 现在详解一下getCurrentScript引入的新hack,利用e.stack截取正在解析的节点的src,从而得到节点。首先随便搞个错误,比如a.b.c()。在opera12的控制台下,我们通过try

jquery 年月日三级联动

本秂侑毒 提交于 2020-04-01 04:33:51
JS里 面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处, 当你传入的是"xxxx/xx/0"(0号)的话,得到的日期是"xx"月的前一个 月的最后一天("xx"月的最大取值是69,题外话), 当你传入的是"xxxx/xx/1"(1号)的话,得到的日期是"xx"月的后一个 月的第一天(自己理解) 如果传入"1999/13/0",会得到"1998/12/31"。而且最大的好处是当你传入"xxxx/3/0",会得到xxxx年2月的最后一天,它会自动判断当年是否是闰年来返回28或29,不用自己判断, 所以,我们想得到选择年选择月有多少天的话,只需要 var temp=new Date("选择年/选择月+1/0"); return temp.getDate()//最大天数 <html xmlns=" http://www.w3.org/1999/xhtml "> <head> <title>JQuery实例 - 生成年月日</title> <meta http-equiv="content-type" content="text/html; charset=gbk"> <script type="text/javascript" src="jquery-1.3.1.js"></script> <script type="text/javascript"> $

准备写一篇BlobAsset的用法

痞子三分冷 提交于 2020-04-01 03:51:46
#if !UNITY_DOTSPLAYER using UnityEngine; using NUnit.Framework; using System; using Unity.Burst; using Unity.Collections; using Unity.Jobs; using Unity.Entities; using Unity.Entities.Tests; using Unity.Collections.LowLevel.Unsafe; using Assert = NUnit.Framework.Assert; public class BlobTests : ECSTestsFixture { //@TODO: Test Prevent NativeArray and other containers inside of Blob data //@TODO: Test Prevent BlobPtr, BlobArray onto job struct //@TODO: Various tests trying to break the Allocator. eg. mix multiple BlobAllocator in the same BlobRoot... struct MyData { public BlobArray<float>

js操作读取excel文档

好久不见. 提交于 2020-04-01 03:21:49
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <script type="text/javascript"> function ReadExcel() { var tempStr = ""; //得到文件路径的值 var filePath = document.getElementById("upfile").value; //创建操作EXCEL应用程序的实例 var oXL = new ActiveXObject("Excel.application"); //打开指定路径的excel文件 var oWB = oXL.Workbooks.open(filePath); //操作第一个sheet(从一开始,而非零) oWB.worksheets(1)