一.JavaSript圆括号的使用 先来看一组通过函数声明来定义的函数: 先附代码: 运行结果如下: 这里我们可以看出: Ø  若没有加圆括号,则返回的是这个函数的内容 Ø  若加上圆括号,则返回的是函数执行后的内容 因此圆括号的作用是作为函数的调用运算符,如果函数使用return语句给出一个返回值,那么这个返回值就是整个调用表达式的值.否则,调用表达式的值就是undefined. 二.接下来看一组通过函数表达式定义的函数 先附代码: 运行结果如下图: 对于普通函数的调用,函数的返回值成为调用表…
函数柯里化(黑人问号脸)???Currying(黑人问号脸)???妥妥的中式翻译既视感:下面来一起看看究竟什么是函数柯里化: 维基百科的解释是:把接收多个参数的函数变换成接收一个单一参数(最初函数的第一个参数)的函数,并返回接受剩余的参数而且返回结果的新函数的技术.其由数学家Haskell Brooks Curry提出,并以curry命名. 概念往往都是干涩且难懂的,让我们用人话来解释就是:如果我们不确定这个函数有多少个参数,我们可以先给它传入一个参数,然后通过JS闭包(如若不懂JS闭包,请先学…
从零开始讲解JavaScript中作用域链的概念及用途 引言 正文 一.执行环境 二.作用域链 三.块级作用域 四.其他情况 五.总结 结束语 引言 先点赞,再看博客,顺手可以点个关注. 微信公众号搜索[Lpyexplore的编程小屋],关注我,带你在python爬虫的过程中学习前端 之前我写过一篇关于JavaScript中的对象的一篇文章,里面也提到了作用域链的概念,相信大家对这个概念还是没有很深的理解,并且这个概念也是面试中经常问到的,因为这个概念实在太重要了,在我们平时写代码时,也可能会因…
<!--示例代码如下:--><!DOCTYPE html> <html> <body> <p>A script on this page starts this clock:</p> <p id="demo"></p> <input type="button" value="停止" onclick="abc()"/> &…
前言 该文是在看别人博客的时候发现的,很有趣的一篇文章,这里摘录到自己的简书中,供给各位读者学习本文主要描述,如何不使用中间值,将两个变量的值进行交换.前三种只适用于number类型的数值交换,第四和第五种适合其他类型. 简书原文 https://www.jianshu.com/p/64a503c762e9 一.普通做法 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存.这样的做法直观,易懂.但是,会增加内存的使用. var a = 1, b = 2, tmp; tmp = a;…
闭包函数 什么是闭包函数? 闭包函数是一种函数的使用方式,最常见的如下: function fn1(){ function fn(){ } return fn; } 这种函数的嵌套方式就是闭包函数,这种模式的好处是可以让内层函数访问到外层函数的变量,并且让函数整体不至于因为函数的执行完毕而被销毁. 例如: function fn1(){ var a =10; function fn(){ console.log(a); // 10 } return fn; } 再比如下面的代码,随着函数的每次执…
什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. 如:我们要完成多组数和的功能. var sum; sum = 3+2; alert(sum); sum=7+8 ; alert(sum); .... //不停重复两行代码 如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多.所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码的麻烦. 使用函数完成: function add2(a,b){ sum = a + b; alert(…
定义函数的方式有两种:一种是函数声明,另一种就是函数表达式. 函数声明的一个重要特征就是函数声明提升(function declaration hoisting),意思是在执行代码前会先读取函数声明. 这个例子不会报错,因为代码在执行前会先读取函数声明.理解函数提升的关键就是区别函数声明和函数表达式之间的区别. 函数表达式的方式有几种表达形式,其中很常见的一种形式就是匿名函数的形式: 这种情况下创建的函数叫做匿名函数,因为function关键字后面没有标识符.匿名函数的name属性是空字符串.…
第1章 作用域是什么 抛出问题:程序中的变量存储在哪里?程序需要时,如何找到它们? 设计 作用域 的目的:为了更好地存储和访问变量. 作用域:根据名称查找变量的一套规则,用于确定在何处以及如何查找变量(标识符). ☞ 编译原理 JavaScript 是一门编译语言,但它不是 提前编译的,编译结果也不能在分布式系统中进行移植. 程序的源代码在执行前的三个步骤,统称为"编译": 分词/词法分析:将字符串分解成代码块(词法单元) 解析/语法分析:将词法单元流(数组)转换成抽象语法树(Abst…
原文链接:http://aisk.me/using-async-await-to-avoid-callback-hell/ JavaScript 中最蛋疼的事情莫过于回调函数嵌套问题.以往在浏览器中,因为与服务器通讯是一种比较昂贵的操作,因此比较复杂的业务逻辑往往都放在服务器端,前端 JavaScript 只需要少数几次 AJAX 请求就可拿到全部数据. 但是到了 webapp 风行的时代,前端业务逻辑越来越复杂,往往几个 AJAX 请求之间互有依赖,有些请求依赖前面请求的数据,有些请求需要并行…