var函数

函数的记忆----函数性能优化

守給你的承諾、 提交于 2019-12-07 16:00:29
// 用n的阶乘来演示 保存上一步计算的数据,进行下一次计算时候先判断是否有上次执行过的,如果有直接获取保存的值然后再进行下一步计算 // n! n*(n-1)*....*2*1 // 0! = 1 // n! = n*(n-1)! // 实现记忆前 var count = 0  // 执行的次数 function factorial(n) { count ++ if(n == 0 || n==1) { return 1 } return n * factorial(n-1) } for(var i=1; i<=5; i++) { console.log(factorial(i)) } // 实现记忆后 var count = 0  // 执行的次数 var cache = []  //执行过的数据保存起来 ---比如从5开始计算,再计算6的阶乘时候只执行6x5! 而5的阶乘则直接从保存的数据中获取 function factorial(n) { count++ if (cache[n]) { // 如果有缓存(cache的值)直接获取缓存内的值 return cache[n] } else {  //没有则进行计算 if (n == 0 || n == 1) { cache[0] = 1 cache[1] = 1 return 1 } else { cache[n] = n *

JavaScript 用箭头函数 => 来写个闭包

安稳与你 提交于 2019-12-07 15:57:37
###先来个简单的知识点过渡 //我们一步一步演化,这样好过干巴巴的介绍 箭头函数 的语法。 顺便说一句右边这货就是箭头函数: => ####普通的匿名函数 与 【箭头函数】 //这是一个普通的匿名函数 var foo = (function() { return "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"; }); //这是对应的箭头函数 var foo = () => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"; //当然如果有强迫症的话也可以写成这样: var foo = (() => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"); //或这样: var foo = (() => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!" ); //测试 alert(foo());//弹窗:大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢! ####带参数的匿名函数 与 【箭头函数】 //这是一个带参数的匿名函数 var foo = (function(n) { return n*10; }); //这是对应的箭头函数 var foo = (n) => n*10; //顺便说一句:向上面没有参数的情况,括号是一定要的。但是如果只有一个参数可以省掉,像这样: var foo = n => n*10; //测试 alert(foo(1));// 10 alert(foo(2))

详解JavaScript中的函数与闭包

我是研究僧i 提交于 2019-12-07 15:54:03
闭包这东西,说难也难,说不难也不难,下面我就以自己的理解来说一下闭包。 一、闭包的解释说明 对于函数式语言来说,函数可以保存内部的数据状态。对于像C#这种编译型命令式语言来说,由于代码总是在代码段中执行,而代码段是只读的,因此函数中的数据只能是静态数据。函数内部的局部变量存放在栈上,在函数执行结束以后,所占用的栈被释放,因此局部变量是不能保存的。 Javascript采用词法作用域,函数的执行依赖于 变量作用域 , 这个作用域是在定义函数时确定的 。因此Javascript中函数对象不仅保存代码逻辑,还必须引用当前的作用域链。Javascript中函数内部的局部变量可以被修改,而且当再次进入到函数内部的时候,上次被修改的状态仍然持续。这是因为因为局部变量并不保存在栈上,而是通过一个对象来保存。 决定使用哪个变量是查找作用域链后决定的。 1.每次 定义函数时 ,都会为之创建一个作用域链; 2.每次 调用函数时 ,会创建一个新的对象用来保存变量(局部变量和参数),并且把这个用于保存变量的对象加入作用域链前端。 如果没有局部变量的话,这个保存变量的对象就只包含arguments,也就是用来保存参数。设想这么一种情况,如果内层函数定义时恰逢外层函数正被调用执行,那么内层函数就会把外层函数运行时这个保存变量的对象纳入自己的作用域链中。 用代码来举例,外层匿名函数执行了10次

前端学习笔记-JavaScript

强颜欢笑 提交于 2019-12-07 15:17:32
js引入方式:   1、嵌入js的方式:直接在页内的script标签内书写js功能代码。     <script type="text/javascript">alert('hello')</script>   2、外联式引入js:以相对路径的方式引入本地js文件,实现H5、CSS、JS分离。     <script type="text/javascript" src="hello.js"></script> js基本语法:   定义变量:使用var关键字,区分大小写。 var a = 123; 使用js操作属性: 1 <script type="text/javascript"> 2 window.onload = function(){ 3 //通过获取一个标签的id来联系标签 4 var oDiv = document.getElementById('div1');       var oInput01 = document.getElementById('input01');       var aLi = documentsgetElementsByTagName('li');//获取一组标签,使用时可通过下标确定具体使用哪一个 5 //对目标标签进行style属性重写 6 oDiv.style.color = 'red';       aLi[2].style

前端知识之HTML

て烟熏妆下的殇ゞ 提交于 2019-12-07 14:20:09
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<

前端知识之HTML

主宰稳场 提交于 2019-12-07 14:19:08
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<

前端知识之HTML

偶尔善良 提交于 2019-12-07 14:18:28
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<

将字符串转换为整数?

两盒软妹~` 提交于 2019-12-07 12:02:25
如何在JavaScript中将字符串转换为整数? #1楼 尝试parseInt。 var number = parseInt("10", 10); //number will have value of 10. #2楼 尝试parseInt函数: var number = parseInt("10"); 但有一个问题。 如果尝试使用parseInt函数转换“ 010”,它将检测为八进制数字,并返回数字8。因此,您需要指定一个基数(从2到36)。 在这种情况下,以10为底。 parseInt(string, radix) 例: var result = parseInt("010", 10) == 10; // Returns true var result = parseInt("010") == 10; // Returns false 请注意, parseInt 在解析任何有效内容后会忽略错误数据。 该GUID将解析为51: var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true #3楼 最简单的方法是使用本机 Number 函数: var x = Number("1000") 如果这对您不起作用,则有 parseInt , 一元plus ,

将字符串转换为整数?

北战南征 提交于 2019-12-07 11:56:44
如何在JavaScript中将字符串转换为整数? #1楼 尝试parseInt。 var number = parseInt("10", 10); //number will have value of 10. #2楼 尝试parseInt函数: var number = parseInt("10"); 但有一个问题。 如果尝试使用parseInt函数转换“ 010”,它将检测为八进制数字,并返回数字8。因此,您需要指定一个基数(从2到36)。 在这种情况下,以10为底。 parseInt(string, radix) 例: var result = parseInt("010", 10) == 10; // Returns true var result = parseInt("010") == 10; // Returns false 请注意, parseInt 在解析任何有效内容后会忽略错误数据。 该GUID将解析为51: var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true #3楼 最简单的方法是使用本机 Number 函数: var x = Number("1000") 如果这对您不起作用,则有 parseInt , 一元plus ,

JavaScript代码库---2019持续更新

北城以北 提交于 2019-12-07 06:23:46
这个代码库全部是自己平时工作中总结出来的,还有一些是在网上浏览各种博客时整理出来的。有需要的朋友可以作为参考,某些地方如果有误,还请各位留言指出。 2018-10-25 .1.js中入门/入口函数的写法//前提条件需要引入jQuery $(document).ready(function() { //初始化时需要做的一些事情 //如果需要初始化多个函数,并且需要让这几个函数按照顺序执行,则可以采取如下的方式,使用一个立即执行函数 (async () => { await a();//初始化时执行的函数a await b();//初始化时执行的函数b await c();//初始化时执行的函数c })(); //还有一种初始化方式 当页面初始化时,有多个方法,而一个方法初始化时需要使用另外一个方法初始化的结果,这种情况就可以使用下面这种方式初始化//// 初始化汇总//这里有一点需要注意,async/await//函数是在ES7的标准规范中才正式确立下来//要不要在ES6中使用还需慎重//不过这种写法倒是值得推介// initSummary().then(result => { console.log(`initSummary: ${result}`); }).catch(err => { msgError(`${err}`); console.log(`initSummary