函数声明

编程范式:命令式编程(Imperative)、声明式编程(Declarative)和函数式编程(Functional)

天大地大妈咪最大 提交于 2019-11-30 22:34:11
命令式编程 :命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。 声明式编程 :告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。 函数式编程 : 和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做。但函数式编程不仅仅局限于声明式编程。 函数式编程最重要的特点是“函数第一位”,即函数可以出现在任何地方,比如你可以把函数作为参数传递给另一个函数,你还可以将函数作为返回值。 命令式编程: 命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。 比如:如果你想在一个数字集合 collection(变量名) 中筛选大于 5 的数字,你需要这样告诉计算机: 第一步,创建一个存储结果的集合变量 results; 第二步,遍历这个数字集合 collection; 第三步:一个一个地判断每个数字是不是大于 5,如果是就将这个数字添加到结果集合变量 results 中。 代码实现如下: List<int> results = new List<int>(); foreach(var num in collection) { if (num > 5) results.Add(num); } 很明显,这个样子的代码是很常见的一种,不管你用的是 C, C++ 还是 C#, Java,

php 5.6 与 php 7 的区别

删除回忆录丶 提交于 2019-11-30 22:18:46
1. PHP7.0 比PHP5.6性能提升了两倍。 2.PHP7.0全面一致支持64位。 3.PHP7.0之前出现的致命错误,都改成了抛出异常。 4.增加了空结合操作符(??)。效果相当于三元运算符。 5.PHP7.0新增了函数的返回类型声明。 6.PHP7.0新增了标量类型声明。   PHP 7 中的函数的形参类型声明可以是标量。在 PHP 5 中只可以是类名、接口、array 或者 callable (PHP 5.4,即可以是函数,包括匿名函数),现在也可以使用 string、int、float和 bool 了。 7.新增加了匿名类。   PHP 5.3 开始有了匿名函数,现在又新增了匿名类; 8.PHP7.0之后溢移除了一些老的不再支持的SAPI(服务器端应用编程端口)和扩展。 9.define 现在可以定义常量数组。 有需要详细了解的可以去查看官方手册: https://www.php.net/manual/en/migration70.new-features.php 来源: https://www.cnblogs.com/afeige/p/10909052.html

怎样理解两种通过字面量形式声明函数的方式

我的梦境 提交于 2019-11-30 21:41:21
前言: 函数的声明可以使用字面量, 也可以使用构造函数, 使用字面量时又分为: 1. 用 function声明; 2. 用 var声明; 这两者声明方式在进行JS预解析时是不一样的, 导致在调用时会有些许区别; 第一步: 使用 function声明, 整个函数都会被预解析, 函数可以在声明前调用 fn(); // "hello" function fn(){ console.log("hello"); } 第二步: 使用 var 声明, 预解析的只是 var 声明的变量, 并将 undefined 赋值给它, 因此在声明前调用会报错 fn(); // Error: not a function var fn = function () { console.log("hello") }; 注意: var 声明的函数是在JS逐行解析时声明的, 它随着变量的生命周期而创建或销毁, 而function声明的函数只有在声明的作用域被销毁以后才会跟着销毁, 因此可以理解为function声明的函数具有更长的生命周期. 来源: https://www.cnblogs.com/aisowe/p/11641401.html

怎样使用构造函数声明函数

时光毁灭记忆、已成空白 提交于 2019-11-30 21:36:23
需要使用构造函数: Function , 用法如下: var add = new Function("a","b","return a + b"); var subtract = new Function("a","b","return a - b"); var multiply = new Function("a","b","return a * b"); var divide = new Function("a", "b", "return a / b"); console.log(subtract(add(multiply(21,32),divide(24,3)),5)); // 675 如上所示, 使用构造函数声明函数的做法较为繁琐, 性能上也没有字面量形式声明好, 但使用构造函数声明函数的做法体现的是: 函数也是对象 这句话. 来源: https://www.cnblogs.com/aisowe/p/11641266.html

JS: GO 和 AO

孤者浪人 提交于 2019-11-30 19:47:39
GO: global object 即 全局上下文 AO :activation object 活跃对象,函数上下文,在函数执行之前进行的一个步骤 代码编译过程: 1.检查通篇的语法错误,若有错误则不编译执行 2.预编译 3.解释一行,执行一行 提升:函数声明会整体提升,变量表达式只有声明提升,赋值不提升 ,如下: console.log(a); // 输出 a的函数声明 function a() { var a = 0; var a = function() {} } var a = 1; 暗示全局变量:imply global variable 即变量为声明就赋值属于全局变量,一切全局变量都在window下面,在函数内部的变量,未声明就直接赋值,也是全局变量 function test() { var jj = dd = 1; } test4(); console.log(jj) //Uncaught ReferenceError: jj is not defined console.log(dd) // 1 说明 jj是函数内的局部变量,而dd是全局变量 寻找GO的方法: 1. 找变量 2. 找函数声明 3. 执行 var a = 1; function a() { console.log(a) }; console.log(a); //1 console.log(a, b)

JavaScript 变量

拟墨画扇 提交于 2019-11-30 19:03:22
1.局部 JavaScript 变量  在 JavaScript 函数内部声明的变量(使用 var)是 局部 变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。 您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。 只要函数运行完毕,本地变量就会被删除。 2.全局 JavaScript 变量 在函数外声明的变量是 全局 变量,网页上的所有脚本和函数都能访问它。 3.JavaScript 变量的生存期 JavaScript 变量的生命期从它们被声明的时间开始。 局部变量会在函数运行以后被删除。 全局变量会在页面关闭后被删除。 4.向未声明的 JavaScript 变量分配值 如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。 非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。 console . log ( delete var2 ); // true 来源: https://www.cnblogs.com/hinux/p/11636430.html

怎样理解在函数中声明var x = y = 1后调用函数时, x是局部变量, y是全局变量

匆匆过客 提交于 2019-11-30 18:32:31
下面这段代码在执行的时候, 打印的结果是1, Error: undefined; function fn() { var x = y = 1; } fn(); console.log(y); // 1; console.log(x); // Error: undefined; 原因是这个函数在执行的时候, 是先执行的: y = 1; 因为这里的y在声明赋值时没有使用var, 因此会默认成为全局变量, 然后将一个全局变量的值赋值给一个局部变量x; 其实际的执行过程如下: var y = 1; function fn() { var x = y; } 来源: https://www.cnblogs.com/aisowe/p/11634923.html

怎样理解全局作用域和函数作用域

安稳与你 提交于 2019-11-30 18:30:13
前言: 全局作用域下声明的变量再其他作用域下也可以使用, 但函数作用域下声明的变量, 无法在全局作用域下使用. var name1 = "Lilei"; function fn() { var name2 = "Hanmeimei"; console.log(name1); console.log(name2); } fn(); // "Lilei" // "Hanmeimei" console.log(name2); // Error: undefined; 注意: ES5 中没有块级作用域, 因此在全局作用域下的if 或 for 或 {} 中声明的变量都是全局变量, 如果if 或 for 或 {} 在函数作用域中, 则在其内部声明的变量可以在函数作用域中使用; 来源: https://www.cnblogs.com/aisowe/p/11634879.html

小程序第三方框架对比 ( wepy / mpvue / taro )

余生颓废 提交于 2019-11-30 17:50:27
众所周知如今市面上端的形态多种多样,手机Web、ReactNative、微信小程序, 支付宝小程序, 快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。但面对目前市面上成熟的小程序第三方框架如何针对自己的需求进行选择也是一个麻烦事,本文针对当前市面上的三大转译框架进行一个综合对比,希望能对大家的技术选择有所帮助,如有哪里不妥的地方希望指正;  小程序开发有哪些痛点? 频繁调用 setData及 setData过程中页面跳闪 组件化支持能力太弱(几乎没有) 不能使用 less、scss 等预编译器 request 并发次数限制  为什么使用第三方框架? 只要熟悉vue或react即可快速上手,学习成本低 一套代码可在多端编译运行(微信,支付宝,h5,RN) 支付宝小程序暂不完善 组件化开发,完美解决组件隔离,组件嵌套,组件通信等问题 支持使用第三方 npm 资源 使小程序可支持 Promise,解决回调烦恼 可使用 Generator Fu-nction / Class / Async Function 等特性,提升开发效率 对小程序本身的优化,如生命周期的补充,性能的优化等等 支持样式编译器: Scss/Less,模板编译器,代码编译器:Babel

3、静态变量和函数

浪尽此生 提交于 2019-11-30 17:02:53
1、全局变量 #include<iostream> using namespace std; int a = 1; void func(int &a) { a++; //自加运算 cout << a << endl; //打印a的值 } int main() { func(a); //调用 func(a); func(a); return 0; } 注意 :在声明函数是,一定要加上 ‘&’, 否则a的值不会变化。 或者用指针 分析:程序中变量a在主函数外定义为全局变量,打印出的值不断增加。全局变量具有全局的作用域,在一个源文件里定义全局变量, 则所有源文件都可以访问这个变量,直到程序结束全局变量才被销毁。 2、局部变量 #include<iostream> using namespace std; int main() { int a; a = 4; cout << a << endl; { int b = 1; cout << b << endl; } cout << b << endl; return 0; } 分析:局部变量的作用域 是从定义开始,到 {} 结束 同样局部变量也不能跨函数访问。 #include<iostream> using namespace std; void func() { cout << a << endl; } int main() { int