var函数

jsPDF使用技巧

混江龙づ霸主 提交于 2019-12-03 16:40:56
正常用法 引入jspdf.min.js var doc = new jsPDF() doc.text('Hello world!', 10, 10) doc.save('a4.pdf') api可查看官方说明 jsPDF 根据不同需求,使用中并没有想象中那么容易。 问题1:输入中文时,生成的pdf内容变成乱码 解决方法: 引入jspdf.customfonts.min.js 和 default_vfs.js var doc = new jsPDF(); doc.addFont('NotoSansCJKjp-Regular.ttf', 'NotoSansCJKjp', 'normal'); doc.setFont('NotoSansCJKjp'); doc.text(15, 30, 'こんにちは。はじめまして。'); //multi-lines Test var paragraph = '相次いで廃止された寝台列車に代わり、いまや夜間の移動手段として主力になりつつある夜行バス。「安い」「寝ながら移動できる」などのメリットを生かすため、運行ダイヤはどのように組まれているのでしょうか。夜遅く出て、朝早く着くというメリット夜行バスを使うメリットといえば、各種アンケートでもいちばん多い回答の「安い」以外に、'; var lines = doc.splitTextToSize

Vue之JavaScript基础

与世无争的帅哥 提交于 2019-12-03 15:57:14
闭包   定义:能够访问另一个函数作用域的变量的函数。   实例: function outer() { var a = '变量1' var inner = function () { console.info(a) } return inner // inner 就是一个闭包函数,因为他能够访问到outer函数的作用域 } var inner = outer() // 获得inner闭包函数 inner() //"变量1"   容易产生的问题:     1. 引用的var定义变量可能发生变化,es6中使用let将不会有此问题     2. this的指向问题 var object = { name: ''object", getName: function() { return function() { console.info(this.name) } } } object.getName()() // underfined// 因为里面的闭包函数是在window作用域下执行的,也就是说,this指向windows     3. 内存泄漏问题 function showId() { var el = document.getElementById("app") el.onclick = function(){ aler(el.id) // 这样会导致闭包引用外层的el

es6中reduce()方法和reduceRight()方法

蓝咒 提交于 2019-12-03 15:35:15
es6中reduce()方法 从左往右开始 参数: prev:它是上一次调用回调时返回的结果,每次调用的结果都会给prev cur:当前的元素 index:当前的索引 arr:循环的数组 返回值: 函数累计处理的结果 demo: 求数组的和。 var a = [1,2,3,4,5,6,7,8,9,10] var str = a.reduce(function(prev,cur,index,arr){ return prev + cur ; }) str // 55; 求阶乘 var a = [1,2,3,4,5,6,7,8,9,10] var str = a.reduce(function(prev,cur,index,arr){ return prev * cur ; }) str //3628800 求幂 新增的一个运算符 A ** B; var a = [2,3,4]; var str = a.reduce(function(prev,cur,index,arr){ return prev ** cur ; }) str // 4096 将二维数组转换成一维 var a= [[0,1],[2,3],[4,5],[6,7],[8,9]]; var str = a.reduce(function(prev,cur){ return prev.concat(cur) }) str

jQuery对象与DOM对象的相互转换

夙愿已清 提交于 2019-12-03 15:01:34
下面介绍jquery对象和DOM对象的相互转换: 在使用jquery框架进行处理时,当我们使用$(expression)方法时,如:获取id="jquery_a"的div元素对象时,实际上获取到的值不是DOM对象,而是jquery对象。 一、jquery对象向DOM对象的转变 需要用到jquery对象访问的方法: 1、each()方法——执行each()方法就相当于是循环处理; 如$("div").each(function(){//TODO......});当获取到页面中的所有的div对象数组,在遍历$("div")这个jquery对象,每一次的循环处理中this都指向一个新的DOM对象。 2、get()方法——执行get(index)方法获取下标为index的DOM对象; 使用“开发人员工具”获取到的值查看两者的关系。如下图 注:其中$("#jquery_a")方法获取到的是jquery对象;而[0]中包含的就是id=“jquery_a”的DOM对象; 获取到[0]的DOM对象的语句如下:var DOMObject = $("#jquery_a").get(0); 二、 DOM对象向jquery对象的转变 将DOM对象转变为jQuery对象,直接使用$()方法进行一下封装即可; 如:获取到了div的DOM对象为:dom,在进行一下$(dom),就变成了jQuery对象。

JavaScript变量提升

拟墨画扇 提交于 2019-12-03 14:31:00
JavaScript中,函数及变量的 声明 都将被提升至函数的最顶部,也就是可以先使用再声明。 ① var x; x = 5; var y = x; //这里的y值为5 ② x = 5; var y = x; //这里的y值为5 var x; 但是在JavaScript中, 初始化 的变量不会提升 ③ var y = x; //这里的y值为undefined var x = 5; 所以,通常我们在每个作用域前开始声明这些变量,这也是正常的JavaScript解析步骤。 来源: https://www.cnblogs.com/1016391912pm/p/11799925.html

Js/事件处理

跟風遠走 提交于 2019-12-03 13:58:08
DOM0级 // 添加事件var btn = document.getElementById("myBtn"); btn.onclick = function(){ alert("Clicked");     console.log(this) // this指向当前元素 };// 删除事件btn.onclick = null DOM2级 DOM2 级事件”定义了两个方法,用于处理指定和删除事件处理程序的操作: addEventListener() 和 removeEventListener() 。所有 DOM 节点中都包含这两个方法,并且它们都接受 3 个参数:要处理的 事件名 、作为 事件处理程序的函数 和一个 布尔值 。最后这个布尔值参数如果是 true ,表示在 捕获 阶段 调用事件处理程序;如果是 false ,表示在 冒泡阶段 调用事件处理程序。 var btn = document.getElementById("myBtn"); btn.addEventListener("click", function(){ alert(this.id); 7 }, false); 使用 DOM2 级方法添加事件处理程序的 主要好处是可以添加多个事件处理程序 var btn = document.getElementById("myBtn"); btn

校赛小记

廉价感情. 提交于 2019-12-03 13:52:51
title: 校赛小记 date: 2017-05-30 09:46:20 tags: 'ctf' --- 端午来临之际,校赛也来了,感觉师傅们出的题还是相当用心的,感觉还是学到了不少,涨了姿势,趁着就来记录一发吧。 0x01简陋的博客 进去主页 测试发现get提交数据过滤的很死 尝试了post提交服务端同样会接受,而且没有那么多的过滤,之后就是绕过article,之前一直在想单引号既然全局转义感觉基本没头绪,后面一想那个article可能不一定是字符,有可能是表明列明之类的,尝试了反引号成功绕过,后面这里就通过报错注入获得的表名,直接丢burp跑出表明flag_is_here 大胆的推测列名是flag,这里直接就可以查出flag 0x02短域名工具 打开是一个输入url的框框,大概功能是我们任意给个url,服务端会返回一个地址,当你访问该地址的时候,他会做个重定向到你的实际url,这里的话有几点测试的,一番测试后发现他会去检验我们的请求协议头是有特殊字符,还有就是他会禁止私有地址的访问,这里想到存在ssrf,首先测试一下服务端的确是会请求我们输入的地址,想到可能是curl访问的找了一个curl特有的协议dict://发现是支持的,确定了是curl,这里想可能有两种方式运行,一种是调用system()函数,或者是直接使用模块,如果是前者或许会有一些命令执行的漏洞,然后一番测试后发现

[React技术内幕] setState的秘密

ぐ巨炮叔叔 提交于 2019-12-03 13:38:13
  对于大多数的React开发者,setState可能是最常用的API之一。React作为View层,通过改变data从而引发UI的更新。React不像Vue这种MVVM库,直接修改data并不能视图的改变,更新状态(state)的过程必须使用setState。    setState介绍   setState的函数签名如下: setState(partialState,callback) 我们看到setState接受两个参数,一个是 partialState ,它是新的state用来更新之前的state。 callback 作为回调函数,会在更新结束之后执行。举个常见的例子 this.setState({ value: this.state.value + 1 })   上面这个例子执行的结果是将state中value的值增加1。但事实真的如此简单吗?我们看下面的代码:    class Example extends React.Component { constructor(props) { super(props); } state = { value: 0 } render() { return ( <div> <div>The Value: {this.state.value}</div> <button onClick={::this._addValue}>add

为什么不建议用var

我的未来我决定 提交于 2019-12-03 10:45:32
看了这个例子估计你就会明白了 var a = 'global'; function test() { if (!a) { var a = 'part'; } console.log(a); } test() 结果是part, 因为这里有变量声明提前。 function test() { var a; if (!a) { a = 'part'; } console.log(a); } 当调用这个函数的时候,会现在这个函数里提升变量的初始化。 所以在平时工作中,应该尽量减少使用var,多用let和const。 来源: https://www.cnblogs.com/caoshufang/p/11791645.html

javascript

ⅰ亾dé卋堺 提交于 2019-12-03 09:47:23
js的数组迭代方法 Array.forEach forEach方法为每个数组元素调用一次函数(回调函数)。 数组求和: var arr = [1,2,4,67,3]; var result=0; arr.forEach(sumArray); function sumArray(value, index, array) { result += value; } 上面的例子只使用了value一个参数,所以可以省略index和array两个参数。 Array.map 跟forEach类似,不过是通过返回值来建立一个新数组,但不改遍原数组的值。不会为undefined原素执行。 将某一个数组每个元素都*2: var number = [1,2,3]; var doubleNumber = number.map(doubleArray); function doubleArray(value, index, array) { return value * 2; } Array.filter 跟以上的用法类似,用于筛选满足条件的元素创建新的数组。 Array.reduce,Array.reduceRight 用于迭代计算。接受四个参数total, value, index, array 例数组求和: var arr = [1,2,4,67,3]; var result=arr.reduce