var函数

JavaScript数组常用操作

痞子三分冷 提交于 2020-02-28 18:35:28
前言 相信大家都用惯了jquery或者underscore等这些类库中常用的数组相关的操作,如$.isArray,_.some,_.find等等方法。这里无非是对原生js的数组操作多了一些包装。 这里主要汇总一下JavaScript数组操作的常用API。相信对大家解决程序问题很有帮助。 1、性质 JavaScript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数。然而,这些数字索引在内部被转换为字符串类型,这是因为JavaScript对象中的属性名必须是字符串。 2、操作 2.1 判断数组类型 var array0 = []; // 字面量 var array1 = new Array(); // 构造器 // 注意:在IE6/7/8下是不支持Array.isArray方法的 alert(Array.isArray(array0)); // 考虑兼容性,可使用 alert(array1 instanceof Array); // 或者 alert(Object.prototype.toString.call(array1) === '[object Array]'); 2.2 数组与字符串 非常简单:由数组转换为字符串,使用join;由字符串转换为数组,使用split。 // join - 由数组转换为字符串,使用join console.log([

手把手教你写策略--移植一个my语言策略

浪子不回头ぞ 提交于 2020-02-28 17:08:14
最近和朋友聊策略的时候,了解到有不少使用my语言编写策略苦于灵活的问题。很多情况下需要使用非系统提供的标准K线周期,例如提出最多的就是需求使用4小时K线。这个问题已经在一篇文章中得以解决,有兴趣的可以先看下: 链接 。不过在my语言策略中这个问题由于my语言高度的封装特性,无法灵活的自行处理数据。这个时候就需要把策略思路移植为其它语言。 对于趋势策略移植来说是非常简单的,我们可以使用一段范例代码,填充驱动策略的数据计算部分代码,填充交易信号触发条件即可。 可复用的范例代码: 以用于OKEX期货的策略为例。 // 全局变量 var IDLE = 0 var LONG = 1 var SHORT = 2 var OPENLONG = 3 var OPENSHORT = 4 var COVERLONG = 5 var COVERSHORT = 6 var BREAK = 9 var SHOCK = 10 var _State = IDLE var Amount = 0 // 记录持仓数量 var TradeInterval = 500 // 轮询间隔 var PriceTick = 1 // 价格一跳 var Symbol = "this_week" function OnTick(){ // 驱动策略的行情处理部分 // 待填充... // 交易信号触发处理部分 // 待填充... /

JavaScript网络请求工具库AjaxTool.js(自用)

我的梦境 提交于 2020-02-28 09:49:57
( function ( ) { function AjaxTool ( ) { } AjaxTool . ajaxRequest = function ( params , successCallback , failedCallback ) { // 1. 获取参数 var requestType = params [ 'requestType' ] || 'get' ; //请求方式 var url = params [ 'url' ] ; // 请求路径 var paramObj = params [ 'paramObj' ] ; // 传递参数 var timeOut = params [ 'timeOut' ] || 0 ; // 请求时长 // 2. 发送请求 var xhr = new XMLHttpRequest ( ) ; // 判断 if ( requestType . toLowerCase ( ) === 'get' ) { // get 请求 // 使用encodeURI 函数可把字符串作为 URI 进行编码。增加健壮性 var codeUrl = encodeURI ( url + '?' + getStrWithObject ( paramObj ) ) ; xhr . open ( 'get' , codeUrl , true ) ; xhr .

防抖Vs节流

我的梦境 提交于 2020-02-28 07:31:57
防抖动(停止触发时间超过设定的等待时间,再触发,第一次需要立即触发) // 将会包装事件的 debounce 函数 function debounce ( fn , delay , immediate ) { // 维护一个 timer let timer = null ; return function ( ) { // 通过 ‘this’ 和 ‘arguments’ 获取函数的作用域和变量 let context = this ; let args = arguments ; if ( immediate ) { var callNow = ! timer ; if ( callNow ) { fn . apply ( context , args ) ; } } clearTimeout ( timer ) ; timer = setTimeout ( function ( ) { fn . apply ( context , args ) ; } , delay ) ; } } 节流(长时间频繁触发,只在设定的时间点规律性的触发一次。并且保留最后一次的操作,第一次操作照样延迟触发) function throttle ( fn , wait , options ) { var previous = 0 ; var later = function ( ) { fn .

学习03-js(内置对象,Date()日期函数,Math对象,数组,字符串对象)

老子叫甜甜 提交于 2020-02-27 23:42:45
Date()日期函数 返回当前时间 var date=new Date(); console.log(date); var date = new Date(2019, 10, 1); console.log(date); //数字型参数返回比实际月份少一个月 var date1 = new Date('2019-10-1 8:8:8'); console.log(date1); /字符型参数 日期格式 getFullYear() 获取当年 getMonth() 获取当月(0-11) getDate() 获取当天日期 getDay 获取星期几(星期0到星期6) getHours() 获取当前小时 getMinutes() 获取当前分钟 getSeconds() 获取当前秒钟 获取总毫秒数 date.valueOf() console.log(date.valueOf()); date.getTime() console.log(date.getTime()); +new Date() var date=+new Date(); Date.now() console.log(Date.now); Math对象 圆周率 Math.PI 返回一个数的最大值 Math.max(1, 8, 6) 取绝对值 Math.abs(-1) 向下取整 Math.floor(1.9) 向上取整 Math

javascript--变量

随声附和 提交于 2020-02-27 12:27:31
变量:可以存储数据的一个容器,可存储和引用任何的数据,存储在内存中以便复用 1.变量的创建:一般来说,要以“var”关键词来修饰声明变量   1)先声明,后赋值 var aa; aa="声明的变量" //在函数中一般涉及到作用域,面向对象编程中可进行变量的重新赋值,(作用域链的作用)   2)声明和赋值同时进行 var aa="我是声明的变量" //直接可用的变量   3)一次声明多个变量再赋值   4)一次声明多个变量同时进行赋值 var name="zhangsan",age=12,sex="boy" 2.命名规范   1)严格区分大小写   2)变量的命名必须以字母或下划线_ 或 $ 开头,其余部分可以是任意的字母,数字,或"_"或"$"   3)不能用关键字或保留字命名   4)命名要有意义 3.注意事项   1)变量的覆盖     a.如果重新声明该变量而没有赋值,该变量的值不会改变 var aa="第一次的变量"; var aa; console.log(aa); //"第一次的变量"     b.如果重新声明的变量并且重新赋值,那么后面的变量会覆盖前面的变量,改为新的变量值 var aa=1; var aa=2; console.log(aa) //2   2)不用var 关键字来修饰变量     aa="我是声明的变量"     如果不用var关键来修饰的变量

JavaScript高级程序设计- 变量、作用域和内存问题

我们两清 提交于 2020-02-27 07:07:01
4 变量、作用域和内存问题 理解基本类型和引用类型 理解执行环境 理解垃圾收集 变量的值及其数据类型可以在脚本的生命周期内改变。 4.1基本类型和引用类型 基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 ES5中 5 种基本数据类型: Undefined、 Null、 Boolean、 Number 和 String。这 5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。ES6中新增Symbol 引用类型的值是保存在内存中的对象。 JavaScript 不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象,ES6中的Map,set,WeakMap,WeakSet 4.1.1 动态属性 定义基本类型值和引用类型值的方式是类似的:创建一个变量并为该变量赋值 引用类型可以 var person = new Object ( ) ; person . name = "threeSt" ; alert ( person . name ) ; //"threeSt" //基本类型不能添加 var name = "three" ; name . age = 26 ; console . log ( name . age ) //undefined 4.1.2 复制变量

对象数组中的indexOf方法?

岁酱吖の 提交于 2020-02-27 01:57:31
获取包含对象的数组的索引的最佳方法是什么? 想象一下这种情况: var hello = { hello: 'world', foo: 'bar' }; var qaz = { hello: 'stevie', foo: 'baz' } var myArray = []; myArray.push(hello,qaz); 现在,我想拥有 indexOf 对象,该对象的 hello 属性为 'stevie' ,在本示例中为 1 。 我是JavaScript的新手,我不知道是否有一个简单的方法,或者是否应该构建自己的函数来做到这一点。 #1楼 或原型: Array.prototype.indexOfObject = function arrayObjectIndexOf(property, value) { for (var i = 0, len = this.length; i < len; i++) { if (this[i][property] === value) return i; } return -1; } myArr.indexOfObject("name", "stevie"); #2楼 我认为您可以使用 map 函数在一行中解决它: pos = myArray.map(function(e) { return e.hello; }).indexOf('stevie')

Javascript鼠标移入方向感知

霸气de小男生 提交于 2020-02-26 15:52:22
这篇文章主要介绍了JavaScript检测鼠标移动方向的方法,涉及javascript鼠标操作的相关技巧,需要的朋友可以参考下。 判断鼠标移入方向的功能函数 function getDir(ev, ele) { var l = ele.getBoundingClientRect().left; var t = ele.getBoundingClientRect().top; var w = ele.getBoundingClientRect().width; var h = ele.getBoundingClientRect().height; var x = (ev.clientX - l - w / 2) * (w > h ? (h / w) : 1); var y = (ev.clientY - t - h / 2) * (h > w ? (w / h) : 1); var deg = Math.atan2(y, x) / (Math.PI / 180); var d = (Math.round((deg + 180) / 90) + 3) % 4; return d; // d的值{上:0,右:1,下:2,左:3} } 整体代码: html: <div id="container"> <img src="./bg.jpg" alt=""> <p class="ps"

JavaScript私有方法

风流意气都作罢 提交于 2020-02-26 15:04:28
要使用公共方法创建JavaScript类,我需要执行以下操作: function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here } 这样,我班的用户可以: var restaurant = new Restaurant(); restaurant.buy_food(); restaurant.use_restroom(); 如何创建可以由 buy_food 和 use_restroom 方法调用但不能由该类的用户外部调用的私有方法? 换句话说,我希望我的方法实现能够做到: Restaurant.prototype.use_restroom = function() { this.private_stuff(); } 但这不起作用: var r = new Restaurant(); r.private_stuff(); 如何将 private_stuff 定义为私有方法,使两者都成立? 我已经读过 Doug Crockford的文章 几次,但似乎公共方法不能调用“私有”方法,而外部可以调用“特权”方法。 #1楼