var方法

JS的内建函数reduce

陌路散爱 提交于 2020-02-15 01:12:08
reduce函数 ,是ECMAScript5规范中出现的数组方法。在平时的工作中,相信大家使用的场景并不多,一般而言,可以通过reduce方法实现的逻辑都可以通过forEach方法来变相的实现,虽然不清楚浏览器的js引擎是如何在C++层面实现这两个方法,但是可以肯定的是reduce方法肯定也存在数组的遍历,在具体实现细节上是否针对数组项的操作和存储做了什么优化,则不得而知。 数组的reduce方法的应用 reduce方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。 reduce方法最常见的场景就是叠加。 var items = [10, 120, 1000]; // our reducer function var reducer = function add(sumSoFar, item) { return sumSoFar + item; }; // do the job var total = items.reduce(reducer, 0); console.log(total); // 1130 可以看出,reduce函数根据初始值0,不断的进行叠加,完成最简单的总和的实现。 前文中也提到

JavaScript局部变量与全局变量2

試著忘記壹切 提交于 2020-02-15 01:08:14
看以下这段代码: <html> <body> <script> class1 = function() { // 私有属性 var m_first = 1; var m_second = 2; // 私有方法 function method1() { alert(m_first); } var method2 = function() { alert(m_second); } // 构建函数 { method1(); method2(); } } var o = new class1(); // 提示未定义 alert(o.m_first); // 错误:对象不支持此属性或方法 o.method1(); </script> </body> </html> 这段代码其实是在介绍JavaScript如何建立一个私有变量与私有方法。这个不是大问题。要关注的是,进入类后,类的私有方法就可以使用类的私有变量了,一层层的,有意思。而 类的私有方法使用全局变量也是正常,没有悬念。类的公用方法使用类的私有变量或全局变 量亦没有问题。 var i=2; …… this.method3=function () //类的公用方法 { alert (m_first + ":" + i); //使用类的私有变量与全局变量 } …… 这里有列出两种构建私有函数的方法(常规函数定义与匿名函数赋给变量)

微信网页中点击图片放大

▼魔方 西西 提交于 2020-02-14 21:02:00
1、 引用微信的JS <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 2、初始化点击放大监听方法(加载完成后调用此方法) /*调用微信预览图片的方法*/ function funcReadImgInfo(){ var imgs = []; var imgObj = $(".userImg img");//这里改成相应的对象 for(var i=0; i<imgObj.length; i++){ imgs.push(imgObj.eq(i).attr('src')); imgObj.eq(i).click(function(){ var nowImgurl = $(this).attr('src'); WeixinJSBridge.invoke("imagePreview",{ "urls":imgs, "current":nowImgurl }); }); } } 3、注意 a.测试效果要在微信上测试(我在电脑浏览器测试会报错) b.如果在微信上测试,点击预览后出现一直在加载无法显示的情况,建议把图片的路径设置成全路径, 来源: https://www.cnblogs.com/lxlin/p/8075267.html

java学习与应用(4.2)--JavaScript

怎甘沉沦 提交于 2020-02-13 21:23:47
基础语法 JavaScript,弱类型脚本语言,增强交互和用户体验提高效率等。JavaScript=ECMAScript+JavaScript特有的内容(BOM对象+DOM对象) ECMAScript:与html结合:内部JS(script标签定义,在html文档内部,按位置先后执行),外部JS(script标签引入src元素), 注释:当行//,多行/**/,数据类型:原始数据类型(基本,number[整数,小数,NaN not a number],string,boolean,null,undefined),引用数据类型(对象) 变量,var定义,开辟空间不定义类型。赋值可改变类型。document.write输出,添加标签<br>字符串换行。typeof(变量)关键字,打印数据类型(null是一个object的bug)。 运算符,一元运算符:++,--,+-(正号,负号[可以将其他类型转number,无法转换为NaN]),算数运算符:+-*/%,赋值运算符=,+=,-=,比较运算符:>,>=,<,<=,==,!=,类型不同则转换类型比较,===(不转换类型比较)。 针对字符串,对象等,使用第二种方法更简便可靠 逻辑运算符,&&(与,带短路效果),||(或,带短路效果),!(非,!!将其他类型转为boolean[0,Nan,null,undefined等为假])。三元运算符:?

JavaScript的一些基础性知识

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-12 21:12:34
1. JavaScript概述 1.1. JavaScript概述 1.1.1. JavaScript是一门独立的语言 JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。 JavaScript是一门独立的语言。 JavaScript是一种脚本语言,不需要编译,是解释运行的语言。 JavaScript运行需要环境,最常见的运行环境就是浏览器,现代主流的浏览器都内置了JS引擎,可以运行JavaScript代码。JS也有服务器端运行环境,我们不做讨论(Node.js、GoogleV8引擎…)。 1.1.2. JS的特点 解释运行,没有编译过程 基于对象 弱类型 1.1.3. JavaScript不得不说的历史 和JAVA的关系:语法十分相似,但其实毫无关系。 1995年5月,Netscape,LiveScript 1995年12月,改名为JavaScript 1996年8月,微软,Jscript 1997-1999年,ECMA,ECMAScript,基于已有的JavaScript和Jscript,提出了标准的Script语法规则,JavaScript和Jscript都遵循这套标准。 1999-以后,ECMAScript不断的更新 JS的优点: 交互性(它可以做的就是信息的动态交互) 安全性(不允许直接访问本地硬盘) 跨平台性(只要是可以解释Js的浏览器都可以执行

学习数据结构与算法(二)

北城余情 提交于 2020-02-12 20:53:12
Hello,everyone ! 想以一个轻松愉悦的心情来开始我的每一篇文章。 这是每一次的整理和缩影,希望大家可以发表意见,促进成长。 正值这个特殊时期,在家里开始研究数据结构与算法的问题,若有不对的地方,请各位指教!~~~ 接下来主要看一下数组。 一.使用 1.创建数组 最简单的方法就是通过 [ ] 操作符来声明一个变量(推荐这种方法) var numbers=[]; print(numbers.length); //0 还可以用Array的构造函数创建数组 var numbers=new Array(1,2,3); print(numbers.length); //5 在脚本语言里很常见的一个特性,数组中的元素不必是同一种数据类型,这一点和很多编程语言不同。 var sbjects=["Joe",1,true,null]; 可以通过Array.isArray 来判断一个对象是否是数组。 2.读写数组(这里不做介绍) 3.由自负床生成数组 .split() var sentence="12454314"; var array=sentence.split("4"); for(var i=0;i<array.length;++i){ print("word"+i+":"+array[i]); } //word 0:124 //word 1:54 //word 2:314 4

JavaScript----对象

蓝咒 提交于 2020-02-10 01:08:01
##基本对象 Function:函数对象 Function:函数(方法)对象* 1、创建* 1、var fun = new Function(形参列表,方法体);//别用,知道就行* 2、function 方法名称(形参列表){* 方法体* }* 3、 var 方法名 = function(形参列表){* 方法体* }* 2、方法* 3、属性* length:代表形参的个数* 4、特点* 1、方法定义时,形参的类型不用写,返回值类型也不写* 2、方法是一个对象,如果定义名称相同的方法,会覆盖前一个方法* 3、在JS中,方法的调用只与方法的名称有关,和参数列表无关* 4、在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数* 5、调用* 方法名称(实际参数列表); <script> /*Function:函数(方法)对象 * 1、创建 * 1、var fun = new Function(形参列表,方法体);//别用,知道就行 * 2、function 方法名称(形参列表){ * 方法体 * } * 3、 var 方法名 = function(形参列表){ * 方法体 * } * 2、方法 * 3、属性 * length:代表形参的个数 * 4、特点 * 1、方法定义时,形参的类型不用写,返回值类型也不写 * 2、方法是一个对象,如果定义名称相同的方法

工作中,如何衡量一个人的 JavaScript 编码水平?

a 夏天 提交于 2020-02-09 12:27:51
1、立即执行函数 立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作: (function() {// 代码})(); function(){…}是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用了这个函数。 立即执行函数也可以理解为立即调用一个匿名函数。立即执行函数最常见的应用场景就是:将var变量的作用域限制于你们函数内,这样可以避免命名冲突。 2、 闭包 对于闭包(closure),当外部函数返回之后,内部函数依然可以访问外部函数的变量。 function f1() {var N = 0; // N是f1函数的局部变量function f2() {// f2是f1函数的内部函数,是闭包 N += 1; // 内部函数f2中使用了外部函数f1中的变量Nconsole.log(N); }return f2;}var result = f1();result(); // 输出1result(); // 输出2result(); // 输出3 代码中,外部函数f1只执行了一次,变量N设为0,并将内部函数f2赋值给了变量result。 由于外部函数f1已经执行完毕,其内部变量N应该在内存中被清除,然而事实并不是这样

函数柯里化实现

只愿长相守 提交于 2020-02-09 11:34:46
假设我们现在有一个方法add,参数需要a和b,目前只有参数a,那我们构想,能否先在a存起来 待b出现了我们再放b上去并执行方法?    这是今天的业务场景描述 下面开始:     // 材料函数     function add(a,b) {       return a+b }     //curry化的方法函数     function curry(fn){       var args = Array.prototype.slice.call(arguments,1); //arguments不是真正意义的数组 需要借用数组方法转换成数组       return function(){        var args2 = Array.prototype.slice.call(arguments);//这里的arguments指的是当前函数的作用的arguments        var argsList = args.concat(args2);        return fn.apply(null, argsList);//这里没有指定函数指针 因此this默认指向全局window   } }     var addFn = curry(add, 1);//我们利用闭包时传入的函数和 argument,得以保存下来 现在我们传入 a值 并不知道 b值     //。

js数组

一曲冷凌霜 提交于 2020-02-07 05:07:17
数组 数组是一个引用列表(顺序,只有值,紧密,速度慢) 数组的创建 var array=[]; //创建空数组 var array=new Array(); //构造函数创建法 var arr=Array(); //不是创建方法,只是把字符串转化为数组类型,速度慢点儿 var arr=new Object([]); //对象数组,不建议使用,反正也还没用过 构造函数创建 构造函数实例化对象 var arr=new Array(1,2,3,4,5); console.log(arr); 数组通过构造函数创建时,如果只有一个参数,并且参数是正整数,这个数就是数组的长度,而不作为数组的新元素; 如果是数字,但不是正整数,都会报错; 如果不是数字,则作为数组的第一个元素添加。 var arr=new Array(“3”); console.log(arr); //[“3”] var arr=new Array(9); console.log(arr); //(9) [empty × 9] 字符串转数组类型 var arr=Array(1,2,3,4,5,6); console.log(arr); var arr=Array(5); console.log(arr); //(5) [empty × 5] 数组的结构 字面量创建数组 var arr0 = [1,2,3,4,5];两个",