函数声明

Go语言

有些话、适合烂在心里 提交于 2019-12-05 19:46:13
2019/11/25 Chenxin 参考 https://www.runoob.com/go/go-ide.html 变量 变量声明 1.指定变量类型,如果没有初始化,则变量默认为0值. var v_name v_type = value //第一种 var v_name v_type //第二种 v_name = value var ( //第三种 vname1 v_type1 vname2 v_type2 ) vname1, vname2 = value1, value2 常见的v_type有: 数值类型/布尔型/字符串/nil型. 以下几种类型为 nil: var a *int //指针 var a []int var a map[string] int var a chan int var a func(string) int var a error // error 是接口 2.go自动根据值判断变量类型 var v_name = value 3.省略var关键字,使用":=". 前提是:=左侧之前没有声明过才行.否则编译报错. := 是一个声明语句(同时可以赋值). 限制: 该方式,只限于在函数体内使用.全局变量不可以使用此方式. 多变量声明 var vname1, vname2 type //只声明.或 var vname1, vname2 = v1, v2 /

C++之利用typedef定义函数指针

[亡魂溺海] 提交于 2019-12-05 18:53:10
进入正文:   代码简化 , 促进跨平台开发的目的.  typedef 行为有点像 #define 宏,用其实际类型替代同义字。  不同点:typedef 在 编译时被解释 ,因此让编译器来应付 超越预处理器能力的文本替换 。 用法一: typedef int (*MYFUN) (int, int) ; 这种用法一般用在给 函数定义别名 的时候 上面的例子定义 MYFUN 是一个 函数指针 , 函数类型是带两个int 参数, 返回一个int 在 分析 这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名 , 剩下的就是原变量的类型. 去掉typedef和MYFUN以后就剩: int (*)(int, int) 用法二: typedef给变量类型定义一个 别名 . typedef struct{ int a; int b; } MY_TYPE ; 这里把一个未命名结构直接取了一个叫MY_TYPE的别名, 这样如果你想定义结构的实例的时候就可以这样: MY_TYPE tmp; 第二种用法:typedef 原变量类型 别名 简单的函数指针的用法 //形式1:返回类型(*函数名)(参数表) char(*pFun)(int); // typedef char(* pFun )(int) //跟上一行功能等同 /*typedef的功能是 定义新的类型 。第一句就是

前端JavaScript

给你一囗甜甜゛ 提交于 2019-12-05 17:32:06
引入方式 script标签内写代码: 在head标签里面可以写, 在body里面也可以写 <script> # 在这里写你的代码 console.log("骑士计划!") # f12 打开浏览器的调试窗口, 然后在console这个调试台就能看到这个内容 alert("骑士计划!") # 这个是浏览器窗口一打开咱们这个文件, 就弹出一个窗口 <script> 引入额外的js文件: <script src="myscript.js"></script> JavaScript语言规范 注释 // 这是单行注释 /* 这是多行 注释 */ 结束符 ​ JS中的语句要以分号(;)为结束符. 也就是说和缩进没关系 JavaScript语言基础 变量声明 ​ JavaScript 的变量名可以使用 _ , 数字, 字母, $组成, 不能以数字开头 ​ 声明变量使用 var + 变量名 的格式来进行声明 var name = "Alex"; /* 也可以分两步, 声明变量var name; 然后name = "alex", 但是通常我们都是一步写完 var age = 18; ​ 注意: ​ 变量名是区分大小写的. 推荐使用驼峰式命名规则. 首字母大写. 保留字(关键字)不能用作变量名 JavaScript数据类型 JS拥有动态类型 var x; # 此时 x 是undefined

二、类型、值和变量

吃可爱长大的小学妹 提交于 2019-12-05 16:36:52
JS数据类型分为两类:基本数据类型和对象类型 基本数据类型包括数字、字符串、布尔类型、null和undefined 对象(object)是属性的集合,每个属性都由键值对构成;普通JS对象是”命名值“的无序集合,特殊对象数组(array)表示带编号的有序集合。 2.1数字 JS不区分整数值和浮点数值,所有数字均用浮点数值表示。运算符包括+、- 、*、/和% 更加复杂的运算通过Math对象的属性定义的函数和变量来实现: Math.pow(2,53) //2的53次幂 Math.round(.6) //=1.0 四舍五入 Math.ceil(.6) //=1.0 向上求整 Math.floor(.6) //=0.0 向下求整数 Math.abs(-5) //=5 绝对值 Math.max(x,y,z) //最大值 Math.min(x,y,z) //最小值 Math.random() //生成一个大于等于0小于1.0的随机数 Math.PI // 圆周率∏ Math.E // 自然对数的底e Math.sqrt(3) //3的平方根 Math.sin(0) // 三角函数 还有Math.cos和Math.atan Math.log(10) //10的自然对数 Math.log(100)/Math.LN10 //以10为底100的对数 Math.exp(3) //e的三次幂 正无穷大

面试知识-js

折月煮酒 提交于 2019-12-05 15:19:54
1.函数声明和变量声明的提升;函数声明会被提升到普通变量之前。变量的声明被看作两部分,第一个是编译阶段的任务,第二个是执行阶段的任务。 2.作用域分为两部分:1.函数作用域,2块级作用域。 3. 来源: https://www.cnblogs.com/xiao-peng-ji/p/11930605.html

node知识点总结

故事扮演 提交于 2019-12-05 14:39:19
1. node和浏览器中的js的区别 node中使用ECMAScript6语法 浏览器中的js包含:ECMAScript+DOM+BOM node中的js包含:ECMASCript6+模块系统(系统模块+第三方模块+自定义模块) 2.ECMAScript6语法基础 let关键词 (1)没有变量提升 (2)有块级作用域 一对大括号就是一个程序块,在大括号中声明的变量,出了大括号就不能使用了 在流程控制中使用let声明的变量,出了流程控制也不能使用了 (3)不能重复声明变量 const常量 一旦赋值就不能改变的量就是常量,常量也有块级作用域 var,let ,const区别 (1)var和let都能声明变量,但是let更严谨一些,在es6之后都推荐使用let来声明变量。 (2)let的特殊点: 不能提升变量(保证程序的逻辑通畅)、 有块级作用域(避免变量交叉污染)、不能重复声明保证变量的唯一性 (3)const用来声明常量,常量是不能改变的量,一旦声明就不能改变。常量也有块级作用域 5. 解构赋值 解构赋值就是将对象或者数组中的数据拆解出来分别赋值给某几个变量 (1)正常解构方式 (2)别名 (3)变量数量与对象单元不对等, 按key正常赋值,如果没有则赋值为 undefined ①变量名少,则正常赋值 ②变量名多,则赋值为undefined ③数组中的不对等,使用…方式 如果使用

TypeScript (TSLint)配置

▼魔方 西西 提交于 2019-12-05 14:23:34
1. 添加配置中所配置的前缀可解决报错 @Component({ selector: 'app-image-wrapper', template: ` <div [ngStyle]="style" > <img class="img" [src]="src" [alt]="desc" /> <div *NgIf="desc" class="desc">{{desc}}</div> </div>`, styleUrls: [ './index.less' ] }) 2. 修改 component-selector 为 false 命名不需要添加前缀 "component-selector": [   false,   "element",   [     "app",     "passport",     "exception",     "layout",     "header"   ],     "kebab-case"   ] } Q: 引用格式报错:[tslint] " should be ' (quotemark) 1. 将报错位置的 双引号 替换为 单引号可解决 2. 修改 quotemark 为 false 可解决,其规定了引用符号的格式,比如在 true 的模式下,就会强制规定引用时必须使用单引号。 "quotemark": [   false,   

ES6常用语法,面试应急专用!

有些话、适合烂在心里 提交于 2019-12-05 14:00:06
常用的ES6语法 注:该文章为转载,原地址为https://www.jianshu.com/p/fb019d7e8b15 什么是ES6? ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。 ECMAScript和JavaScript到底是什么关系?很多初学者会感到困惑,简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。 一、let和const 在JavaScript中咱们以前主要用关键var来定义变量,ES6之后,新增了定义变量的两个关键字,分别是let和const。 对于变量来说,在ES5中var定义的变量会提升到作用域中所有的函数与语句前面,而ES6中let定义的变量则不会,let声明的变量会在其相应的代码块中建立一个暂时性死区,直至变量被声明。 let和const都能够声明块级作用域,用法和var是类似的,let的特点是不会变量提升,而是被锁在当前块中。 一个非常简单的例子: function test() { if(true) { console.log(a)//TDZ,俗称临时死区,用来描述变量不提升的现象 let a = 1 } } test() // a is

ECMAScript 6.0 简要学习

左心房为你撑大大i 提交于 2019-12-05 10:04:01
  由于在学习vue的时候有许多自己不懂的语法,于是简单的学习一下ES6。 1.ES简介   ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。   ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能   JavaScript 是大家所了解的语言名称,但是这个语言名称是商标( Oracle 公司注册的商标)。因此,JavaScript 的正式名称是 ECMAScript 。1996年11月,JavaScript 的创造者网景公司将 JS 提交给国际化标准组织 ECMA(European computer manufactures association,欧洲计算机制造联合会),希望这种语言能够成为国际标准,随后 ECMA 发布了规定浏览器脚本语言的标准,即 ECMAScript。这也有利于这门语言的开放和中立。 2.ES6新特性   在这里简要的学习一下ES6的比较重要的新特性,在自己的平时工作中也没有过多的用到的ES6简要记录。 1.let与const关键字 (重要)   这两个关键字都是声明变量的关键字,其与var声明的变量有一定的区别,区别如下

JavaScript之作用域和闭包

▼魔方 西西 提交于 2019-12-05 09:59:27
一、作用域 作用域共有两种主要的工作模型:第一种是最为普遍的,被大多数编程语言所采用的词法作用域,另外一种叫作动态作用域; JavaScript所采用的作用域模式是词法作用域。 1.词法作用域 词法作用域意味着作用域是由书写代码时函数声明的位置来决定的。编译的词法分析阶段基本能够知道全部标识符在哪里以及是如何声明的,从而能够预测在执行过程中如何对它们进行查找。 JavaScript 中有两个机制可以“欺骗”词法作用域: eval(..):可以对一段包含一个或多个声明的“代码”字符串进行演算,并借此来修改已经存在的词法作用域(在运行时) ; with:通过将一个对象的引用当作作用域来处理,将对象的属性当作作用域中的标识符来处理,从而创建了一个新的词法作用域(同样是在运行时) 。 这两个机制的副作用是引擎无法在编译时对作用域查找进行优化,因为引擎只能谨慎地认为这样的优化是无效的。使用这其中任何一个机制都将导致代码运行变慢。 2.函数作用域和块级作用域 函数作用域: 函数是 JavaScript 中最常见的作用域单元。本质上,声明在一个函数内部的变量或函数会在所处的作用域中“隐藏”起来,即函数内定于的函数和变量为该函数私有; 块级作用域: 块作用域指的是变量和函数不仅可以属于所处的作用域,也可以属于某个代码块(通常指 { .. } 内部)