var函数

数据可视化之风向图

匆匆过客 提交于 2020-03-21 07:46:25
转自 fu*k 原文 数据可视化之风向图 很多人都见过 风向图 ,直观形象,也是地图数据和现实数据在可视化上很好的结合。 这是我见的第一个风向图,记得是2012年吧,当时觉得很有意思,作为一名技术人员,自然好奇它是如何做到的,是Canvas还是SVG?但当时没深究。最近正好有人(大哥)提到了这个,不妨深入了解,一探究竟。于是乎,发现原来还有这么多玩法,大同小异,比如说这个,来自earth.nullschool.net: 当然还有来自度娘开源的echarts-x的: 基本上,这三个效果图基本涵盖了目前风向图的技术点和功能点(我自己的看法,因为windyty是基于earth.nullschool写的,前者多了一个worker线程处理数据,而后者在github上开源)。不知道哪一个最对你的胃口?对我而言,图1简单易懂,可以快速掌握风向图的实现;图2是实时的全球风向数据,而且是二进制格式,是大数据传输的一个方案;图3则采用WebGL实时渲染,算是大数据渲染的一个方案,所以各有千秋。正好本文就结合这三个例子说一下其中处理好的地方,也是一个由易到难的过程。 原理 乍看上去,多少会觉得无从下手。这是怎么做到的?其实吧,懂与不懂就是那一层纸,就看你愿不愿意戳破而已。我们先从数据说起。 首先介绍一下向量场(Vector Field)的概念。在维基百科的解释是:在向量分析中

第七章 函数表达式

久未见 提交于 2020-03-21 07:41:56
7.4 私有变量 任意在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和在函数内部定义的其他函数 function add(num1,num2){ var sum=num1+num2; return sum; } 在add函数内部,有3个私有变量:num1、num2和sum。在函数内部可以访问这几个变量,但在函数外部则不能访问它们。如果在这个函数内部创建一个闭包,那么闭包通过自己的作用域链可以访问这些变量。利用这一点,就可以创建用于访问私有变量的公有方法。 我们把有权访问私有变量和私有函数的公有方法称为特权方法。有两种在对象上创建特权方法的方式。第一种是在构造函数的中定义特权方法,基本模式如下: function MyObject(){ //私有变量和私有函数 var privateVariable=10; function privateFunction(){ return false; } //特权方法 this.publicMethod=function(){ privateVariable++; return privateFunction(); } } 对于这个例子,在创建MyObject的实例后,除了使用publicMethod()这一个途径外

D3.js 力导向图(气泡+线条+箭头+文字)

瘦欲@ 提交于 2020-03-21 06:02:33
<!DOCTYPE html> <meta charset="utf-8"> <style> .link { fill: none; stroke: #666; stroke-width: 1.5px; } #licensing { fill: green; } .link.licensing { stroke: green; } .link.resolved { stroke-dasharray: 0,2 1; } circle { fill: #ccc; stroke: #333; stroke-width: 1.5px; } text { font: 12px Microsoft YaHei; pointer-events: none; text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff; } .linetext { font-size: 12px Microsoft YaHei; } </style> <body> <script src="http://d3js.org/d3.v3.min.js"></script> <script> // http://blog.thomsonreuters.com/index.php/mobile-patent-suits-graphic-of

JS经典面试题

徘徊边缘 提交于 2020-03-21 04:52:11
自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf"; var newObject = JSON.parse(JSON.stringify(oldObject)); console.log(newObject); 或者 var a = 'dddd'; function cp(a){return JSON.parse(JSON.stringify(a))} console.log(cp(a)); 2.js 实现 ajax 请求或者submit请求时 锁屏功能以及开锁功能(请求时界面Loading以及元素不能点击,请求完成即消除Loading) function(url, fn) { var obj = new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据 obj.open('GET', url, true); obj.onreadystatechange = function() { if(obj.readyState == 4 && obj.status == 200||obj.status == 304) { loading.style.display = "none" } else {

前端JavaScript规范

断了今生、忘了曾经 提交于 2020-03-20 23:17:39
JavaScript规范 目录 类型 对象 数组 字符串 函数 属性 变量 条件表达式和等号 块 注释 空白 逗号 分号 类型转换 命名约定 存取器 构造器 事件 模块 jQuery ES5 兼容性 HTML、CSS、JavaScript分离 使用jsHint 前端工具 类型 原始值 : 相当于传值(JavaScript对象都提供了字面量),使用字面量创建对象。 string number boolean null undefined var foo = 1, bar = foo; bar = 9; console.log(foo, bar); // => 1, 9 复杂类型 : 相当于传引用 object array function var foo = [1, 2], bar = foo; bar[0] = 9; console.log(foo[0], bar[0]); // => 9, 9 对象 使用字面值创建对象 // bad var item = new Object(); // good var item = {}; 不要使用保留字 reserved words 作为键 // bad var superman = { class: 'superhero', default: { clark: 'kent' }, private: true }; // good var

微信小程序 sha1 实现密码加密

﹥>﹥吖頭↗ 提交于 2020-03-20 15:15:53
在utils中的util.js 文件中增加 函数 实现 字符串转换为16进制加密后的字符串 function encodeUTF8(s) { var i, r = [], c, x; for (i = 0; i < s.length; i++) if ((c = s.charCodeAt(i)) < 0x80) r.push(c); else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F)); else { if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000, r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F)); else r.push(0xE0 + (c >> 12 & 0xF)); r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F)); }; return r; }; // 字符串加密成 hex 字符串 function sha1(s) { var data = new Uint8Array(encodeUTF8(s)) var

Egret事件冒泡的应用

[亡魂溺海] 提交于 2020-03-20 11:21:07
在web前端开发中,利用事件冒泡能够达到减少事件绑定的目的. 学习egret,发现egret同样支持事件冒泡机制 下面为案例: 共有五个按钮需要绑定事件,我们可以给整个栏目绑定事件,利用事件冒泡,分别做出不同的操作: 例如: //给外层父元素绑定点击事件 this.addEventListener(egret.TouchEvent.TOUCH_TAP, this.tabWasTouched, this) //点击事件处理函数 private tabWasTouched(e): void { console.log(e.target) } //===>最终得到的e.target即是被点击的目标组件 获取egret组件类型: //获取e.target的类型: var b = egret.getQualifiedClassName(e.target) //===>"eui.ToggleButton" "eui.Image" //反向使用: 类型引用 创建实例 var clazz: any = egret.getDefinitionByName(b); var body: any = new clazz();//创建了一个ToggleButton实例 来源: https://www.cnblogs.com/webfs/p/12529777.html

前端基础之JavaScript

断了今生、忘了曾经 提交于 2020-03-20 03:08:25
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更 2015 ECMAScript 6

JavaScript 中的陷阱

不问归期 提交于 2020-03-19 13:13:05
3 月,跳不动了?>>> 全局变量 JavaScript 通过函数管理作用域。在函数内部声明的变量只在这个函数内部,函数外面不可用。另一方面,全局变量就是在任何函数外面声明的或是未声明直接简单使用的。 “未声明直接简单使用”,指的是不用 var 关键字来声明变量。这个我们已经非常清楚,避免造成隐式产生全局变量的方法就是声明变量尽量用 var 关键字。 可你以为用了 var 就 ok 了?来看看这个陷进: 1 2 3 4 function foo ( ) { var a = b = 0 ; // body... } 也许你期望得到的是两个局部变量,但 b 却是货真价实的全局变量。why? Because 赋值运算是自右往左的 ,所以这相当于: 1 2 3 4 function foo ( ) { var a = ( b = 0 ) ; // body... } 所以 b 是全局变量。 解决:变量声明,最好一个个来,别搞批发~_~; 变量声明 先来看陷阱: 1 2 3 4 5 6 7 8 9 myName = "global" ; function foo ( ) { alert ( myName ) ; var myName = "local" ; alert ( myName ) ; } foo ( ) ; 乍看上去,我们预计期望两次 alert 的结果分别为 “global” 与

javascript基础

一笑奈何 提交于 2020-03-19 08:09:38
一:引入方式 {#1 直接编写#} <script> alert('hello yuan') </script> {#2 导入文件#} <script src="hello.js"></script>  1.声明变量时不用声明变量类型. 全都使用var关键字;   var valuable;   var name="yn", age=20, job="lecturer"; 2.函数声明   funciton method_name(){} function add() { } var x=16; var y=18; alert(x+y); 3. 声明变量时 可以不用var. 如果不用var 那么它是全局变量    4. 注释 支持多行注释和单行注释. /* */ // 5.JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符 数字类型(Number) 字符串(String) 布尔型(Boolean) true/false Null & Undefined Undefined 类型 Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。 当函数无明确返回值时,返回的也是值 "undefined"; Null 类型 如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。