函数声明

十一、微信小程序-var、let、const用法详解

两盒软妹~` 提交于 2019-12-05 09:10:21
let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。 for循环的计数器,就很合适使用let命令。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log

第一章 1.15 类和对象(基础)

China☆狼群 提交于 2019-12-05 07:33:33
一. 类和对象 1. 先来两句废话 类就是拥有相同功能和相同属性的对象的集合 对象就是类的实例 2. 类的声明 1).语法 class 类名: 类的说明文档 类的内容 2).说明 class - 声明类的关键字 类名 - 和变量的声明要求相同; 规范:见名知义;首字母大写;驼峰式命名 类的说明文档 - 用三个双引号引起来 类的内容 - 描述声明的类的功能和属性 函数(功能)和变量(属性) 3. 创建对象 对象 = 类名( ) 二. 类的方法 对象方法, 类方法, 静态方法 1. 对象方法 1).声明: 在类里面直接声明函数 2).调用: 用对象来调用,以'对象.对象方法()'的形式来调用 3).特点: 有个默认参数self, 通过对象调用时不用传参(系统自动传参,将当前调用函数的对象传给self) 4).使用条件:在实现函数功能时需要用到对象属性时使用对象方法 class Dog: def eat(self, food = '骨头'): print('狗吃' + food) def run(self): print('狗跑步') dog1 = Dog() dog1.eat() 2. 类方法 1).声明: 在声明前加@classmethod 2).调用: 通过类来调用 '类.类方法' 3).特点: 自带参数cls,不需要传参,系统会自动将当前类(class)传给cls 4).使用条件

类和对象(下)C++

拟墨画扇 提交于 2019-12-05 03:22:32
1. 再谈构造函数 构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造 函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内 可以多次赋值。 class Date { public: //这样的构造函数中是赋初始值,不是初始化 //Date(int year,int month,int day) //{ // _year = year; // _month = month; // _day = day; //} Date(int year, int month, int day) :_year(year) //初始化列表 用:后面个参数赋值用,隔开,最后一个参数后不加分隔符 , _month(month) , _day(day) {} private: int _year; int _month; int _day; }; int main() { Date d1(2016, 6, 6); return 0; } 注意: 1. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次) 。 2. 类中包含以下成员,必须放在初始化列表位置进行初始化: 引用成员变量 const成员变量 类类型成员(该类没有默认构造函数 3. 尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量

C++编码规范

北慕城南 提交于 2019-12-05 03:05:31
严谨编码风格的重要性: 1.便于代码合并,满足团队开发的需要 2.合格程序员的必备素质 3.防止编码错误 4.易读易理解 Google C++编码规范(中文版) https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/ 1.头文件尽可能多的使用前向声明 好处:较少的文件依赖,减少编译时间. 更加明确的类的依赖关系. 1 //.h中类B使用类A,使用前向声明就不需要包含类A的头文件,减少编译工作量 2 class CA; //前向声明一个类A 3 class CB 4 { 5 public: 6 CA* m_pA;//声明类A的指针 7 CA* GetClassA(CA *pA, CA &a); //声明使用类A作为形参或返回值类型的函数 8 //CA m_A; Error,不能定义类A的对象 9 }; 2.函数的参数顺序,输入参数在前,输出参数在后 输入参数一般为传值或者指针,引用,前面加const 输出参数一般为非常量指针或者引用 好处:根据参数的位置明确参数的作用,一目了然 1 //输入参数: nInput cInput szInput 2 //输出参数: nOutPut 3 void Fun(const int nInput, const char cInput, const

通过javascript 执行环境理解她

扶醉桌前 提交于 2019-12-05 02:23:36
古往今来最难的学的武功(javascript)算其一。 欲练此功必先自宫,愿少侠习的此功,笑傲江湖。 你将了解 执行栈(Execution stack) 执行上下文(Execution Context) 作用域链(scope chains) 变量提升(hoisting) 闭包(closures) this 绑定 执行栈 又叫调用栈,具有 LIFO(last in first out 后进先出)结构,用于存储在代码执行期间创建的所有执行上下文。 当 JavaScript 引擎首次读取你的脚本时,它会创建一个全局执行上下文并将其推入当前的执行栈。每当发生一个函数调用,引擎都会为该函数创建一个新的执行上下文并将其推到当前执行栈的顶端。 引擎会运行执行上下文在执行栈顶端的函数,当此函数运行完成后,其对应的执行上下文将会从执行栈中弹出,上下文控制权将移到当前执行栈的下一个执行上下文。 我们通过下面的示例来说明一下 function one() { console.log('one') two() } function two() { console.log('two') } one() 当程序(代码)开始执行时 javscript 引擎创建 GobalExecutionContext (全局执行上下文)推入当前的执行栈,此时 GobalExecutionContext

C++基础(对象和类)

為{幸葍}努か 提交于 2019-12-05 02:05:22
类的数据成员是不能在声明类时初始化的 。类的数据成员只是这个类的对象的一些属性声明。每个对象的属性值都是不相同的。 类只是一个数据模板。声明类时并没有申请存储空间,只有类定义一个对象时,才申请空间。 成员函数是用来对数据成员进行操作的,又称为方法。 所创建的每个新对象都有自己的存储空间,用于存储其内部变量和类成员 。但同一个类的所有对象共享同一组类方法,即每种方法只有一个副本。 Sum make,jock; // 创建两个对象 两个对象将占据两块不同的内存块,但 make.show() 和 jock.show() 都调用同一个方法,它们将执行同一个代码块,只是将这些代码用于不同的数据。 要创建类对象,可以声明类变量,也可以使用 new 为类对象分配存储空间。 可以将对象作为函数的参数和返回值,也可以将一个对象赋给另一个对象。 通常,数据成员被放在私有部分中,成员函数被放在共有部分中。 公有部分的内容构成了设计的抽象部分 —— 公有接口。将数据封装到私有部分中可以保护数据的完整性,这就被称为数据隐藏。 对象 ( 实例 ) 调用成员函数时,每当成员函数中的代码引用某个数据成员时,该函数都将使用对象中相应成员的值。 来源: https://www.cnblogs.com/tingtaishou/p/11896830.html

C++类的定义和对象

时光总嘲笑我的痴心妄想 提交于 2019-12-05 01:51:46
C++类的定义和对象 类的成员变量称为类的属性(Property),将类的成员函数称为类的方法(Method)。在面向对象的编程语言中,经常把函数(Function)称为方法(Method)。 类的定义 class Student{ public: //成员变量 char *name; int age; float score; void say(){ cout<<name<<age<<score<<endl; } }; 类只是一个模板(Template),编译后不占用内存空间. class C++ 中新增的关键字,用来定义类。 成员变量和成员函数,它们统称为类的成员(Member) 创建对象: Student Lilei; //创建对象 Student 是类名, liLei 是对象名。和使用基本类型定义变量的形式类似, 从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。 在创建对象时,class 关键字可要可不要 class Student LiLei; //正确 Student LiLei; //同样正确 还可以创建对象数组: Student allStu[100]; 使用对象指针: Student stu; //pStu 是一个指针,它指向 Student 类型的数据,通过 Student 创建出来的对象 Student

CSS3概述

∥☆過路亽.° 提交于 2019-12-05 01:51:36
CSS3版本是CSS的模块化规范。不同的模块扩展、完善了以往CSS版本的各个方面。例如,CSS3颜色模块解决了色彩校正、透明度等功能;CSS3字体模块增加了文字效果,能调整它们的显示,甚至下载自定义字体。另外,还有一些模块是新添加进来的,如渐变和动画模块。其他一些陈旧的不再使用的功能则被抛弃,或者将被抛弃。不管什么情况,当谈到CSS3时,应认真核对和测试对CSS3 Web站点的支持情况。 1.专属CSS前缀 对于一些Web开发人员,CSS往往与标准和规范相关联。与(X)HTML不同,CSS让浏览器厂商更方便地扩展规范,例如,以连字符“-”或下划线“_”为起始标记的新引入的关键字和特姓名就被认为是供应商特有的拓展。语法是-vendoridentifier-newproperty或_vendoridentifier_newproperty,虽然在实践中,带连字符的名称似乎是唯一在使用的扩展。例如,-moz用作Mozilla功能的前缀时,可以写作-moz-border-radius。常见的前缀如下表所示 另外,还有一些其他专有的CSS前缀,这些前缀或许遵守,或不遵守恰当的前缀机制。例如,支持WAP(无线应用协议)的无线电话可以使用-wap-为前缀的特性,如-wap-accesskey。Microsoft Office的一些应用可能会使用类似mso-的CSS规则,如mso-header

Android WIFI 详解

荒凉一梦 提交于 2019-12-05 01:18:54
最 近研究Wifi模块,查了不少的相关资料,但发现基本上是基于android2.0版本的的分析,而现在研发的android移动平台基本上都是2.3的 版本,跟2.0版本的差别,在Wifi模块上也是显而易见的。2.3版本Wifi模块没有了WifiLayer,之前的WifiLayer主要负责一些复 杂的Wifi功能,如AP选择等以提供给用户自定义,而新的版本里面的这块内容基本上被WifiSettings所代替。 本文就是基于android2.3版本的Wifi分析,主要分为两部分来分别说明: (1) Wifi模块相关文件的解析 (2) Wpa_supplicant解析 (3) Wifi的启动流程(有代码供参考分析) 一,Wifi模块相关文件解析 1) wifisettings.java packages/apps/Settings/src/com/android/settings/wifiwifisettings.java 该类数据部分主要定义了下面几个类的变量: { private final IntentFilter mFilter; //广播接收器,用来接收消息并做响应的处理工作 privatefinal BroadcastReceiver mReceiver; //这是一个扫描类,会在用户手动扫描 AP时被调用 privatefinal Scanner mScanner;

go语言入门(4)函数

女生的网名这么多〃 提交于 2019-12-04 20:24:57
1,函数的定义格式 函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。 Go 语言函数定义格式如下 func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) { //函数体 return v1, v2 //返回多个值 } 函数定义说明: 1)func:函数由关键字 func 开始声明 2)FuncName:函数名称,根据约定, 函数名首字母小写即为private,大写即为public 3)参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数 4)返回类型: 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号 如果没有返回值,那么就直接省略最后的返回信息 如果有返回值, 那么必须在函数的内部添加return语句 2,自定义函数 2.1,无参无返回值 func Test() { //无参无返回值函数定义 fmt.Println("this is a test func") } func main() { Test() //无参无返回值函数调用 } 2.2,有参无返回值 1)普通参数列表 func Test01