var方法

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

[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

手机端H5获取当前城市的方法

∥☆過路亽.° 提交于 2019-12-03 11:09:07
移动端的H5页面提供了定位的功能,那么如何实现一个最简单的需求-----获取用户当前城市? 你可能搜一下就会找到N篇博客介绍,但是你会发现你看完大段代码之后还是没搞清楚,为了便于大家理解,我精简了代码,只保留了必要的部分。 1、在html页面引入百度地图API(文档地址: http://developer.baidu.com/map/wiki/index.php?title=jspopular/guide/introduction ) < script src ="http://api.map.baidu.com/api?ak=你的AK码&v=2.0&services=false" ></ script > 2、js代码使用h5的geolocation方法获取坐标,然后使用百度api的getlocation方法翻译成你想要得结果(不准确) 1 navigator.geolocation.getCurrentPosition( function (position) { 2 var lat = position.coords.latitude; 3 var lon = position.coords.longitude; 4 var point = new BMap.Point(lon, lat); // 创建坐标点 5 // 根据坐标得到地址描述 6 var myGeo = new

PHP 序列化变量的 4 种方法

北慕城南 提交于 2019-12-03 09:46:49
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。 1. serialize和unserialize函数 这两个是序列化和反序列化PHP中数据的常用函数。 $a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); //序列化数组 $s = serialize($a); echo $s; //输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";} echo '<br /><br />'; //反序列化 $o = unserialize($s); print_r($o); 当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。为了克服这个问题,一个巧妙的技巧是使用base64_encode和base64_decode。 PHP代码 $obj = array(); //序列化 $s = base64_encode(serialize($obj)); //反序列化 $original = unserialize(base64_decode($s));

Swift入门篇-基本类型

那年仲夏 提交于 2019-12-03 07:56:12
Swift入门篇-基本类型 一:元组 格式 变量或常量关键字 元组变量 = ( 变量,变量, …) 说明: 1: 元组变量还是一个变量,只不过表现方式和其他变量不一样 2:()括号里面可以放入N个变量组成 例子; import Foundation /* A是元组变量,()里面放着 整形 和字符串 元组类型为 整形和字符串 组成 */ var A = (1,"swift”)//元组变量A 由 整形和字符串 组成 println(A) 运行结果 ( 1 , swift) mport Foundation var B = 12 /* 定义一个元组,元组变量为C , ()里面放 整形变量B 和字符串。 元组类型有 整形 和 字符串组成 */ var C = (B,"Swift") //元组变量B 由 整形和字符串组成 println(C) 运行结果 ( 12 , Swift) 元祖访问方式 1: 匿名元组变量来访问 说明: 1.1 匿名元组变量和定义好的元组变量参数必须一致 1.2 需要元组中的个别值,可以使用(_)来忽略不需要的值 例子(1.1) import Foundation var A = (1,"Swift") //元组变量A 由 整形和字符串组成 /* 1: A 是元组变量,由整形和字符串组成 2:(B,C)是一个匿名元组变量 3:元组变量A 所对应的值

JavaScript的数组操作

╄→гoц情女王★ 提交于 2019-12-03 07:40:43
JavaScript的数组操作 JavaScript数组也是对象,它使用单一的变量存储一系列的值。 数组和对象的区别 在JavaScript中,数组必须使用数字索引,对象可以使用命名索引。 数组是特殊类型的对象,具有特有的一些属性和方法。 如何区分数组和对象 方案1 ECMAScript5定义新方法Array.isArray() var arr = []; var obj = {}; console.log(Array.isArray(arr)); // true console.log(Array.isArray(obj)); // false 此方案不支持老的浏览器。 方案2 var arr = []; console.log(Object.prototype.toString.call(arr)); // [object Array] var obj = {}; console.log(Object.prototype.toString.call(obj)); // [object Object] 创建 使用字面量创建 var arr = []; 使用构造函数创建 var arr = new Array(); console.log(arr); // [] arr = new Array(2); console.log(arr); // [empty × 2]

冒泡排序

天涯浪子 提交于 2019-12-03 03:57:12
下面我们用两种方法实现冒泡排序: var afterDelete = [11, 2, 6, 31, 5] 方法一: function range(arr) { for(var i=0;i<arr.length-1;i++){ //索引值是i的数字和排在它后面的所有数字依次比较一次 for (var j = i + 1;j < arr.length;j++){ if (arr[i] > arr[j]) { var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } return arr } var rangeResult = range(afterDelete) console.log(rangeResult) // [2, 5, 6, 11, 31] 方法二: function quickSort(elements){ if(elements.length<=1){ return elements; } var index = Math.floor(elements.length/2); //console.log(index);//5->5->4->3->2->2->1 var pivot = elements.splice(index,1)[0];//获取删除的数字 //console.log("pivot="+pivot)

前端基础之BOM和DOM

匿名 (未验证) 提交于 2019-12-03 00:40:02
ǰϷ 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 window对象 所有浏览器都支持 window 对象。它表示浏览器窗口。 *如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 *没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员

深入浅出--js闭包的理解

匿名 (未验证) 提交于 2019-12-03 00:40:02
好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了。好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法、用法和用途。 1、什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:   1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。   2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。   简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。 2、闭包的几种写法和用法 首先要明白,在JS中一切都是对象,函数是对象的一种。下面先来看一下闭包的5种写法,简单理解一下什么是闭包。后面会具体解释。 //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { return Circle.PI * this.r * this.r; } var c =

JS判断变量初始化

匿名 (未验证) 提交于 2019-12-03 00:37:01
JS判断变量初始化 有以下三种方法: var x; if(x==null) { alert("null"); } var x; if(typeof(x)=="undefined") alert("undefined"); var x; if(!x) { alert("不x"); } 推荐最后一种方法。 文章来源: JS判断变量初始化