函数声明

JS ES5

你。 提交于 2019-12-06 22:50:26
严格模式 use strict 必须使用var声明变量 自定义函数this指向window 'use strict' funcion Person(name){ this.name = name; } Person("Tom"); //error new Person("Tom"); //right 来源: https://www.cnblogs.com/KevinTseng/p/11999972.html

Rust 入门 (五)

自古美人都是妖i 提交于 2019-12-06 15:01:51
定义并介绍结构体 结构体和我们前面学习的元组类似,结构体中的每一项都可以是不同的数据类型。和元组不同的地方在于,我们需要给结构体的每一项命名。结构体较元组的优势是:我们声明和访问数据项的时候不必使用索引,可以直接使用名字。 声明结构体 我们直接看一个结构体的例子: struct User { username: String, email: String, sign_in_count: u64, active: bool, } 结构体使用关键字 struct 开头,紧跟结构体的名字,之后就是大括号包裹的多条结构体数据项,每个数据项由名字和类型组成,我们把每个数据项称为字段。 结构体实例化 我们声明了一个结构体后,如何使用它呢?接下来创建一个结构体的实例: let user1 = User { email: String::from("someone@example.com"), username: String::from("someusername123"), active: true, sign_in_count: 1, }; 可以看到,创建结构体实例 (结构体实例化) 是直接以结构体名字开头,之后就是大括号包裹的键值对。这些键值对顺序和声明结构体的顺序无关,换句话说,声明结构体就是定义一个通用的模版,结构体实例化就是给模版填充值。 结构体数据的存取 创建了结构体实例

ES6常见面试题

只愿长相守 提交于 2019-12-06 13:07:02
1.es5和es6的区别,说一下你所知道的es6 ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化 ECMAScript6,即ES6,是ECMAScript的第六次修订,于2015年完成,也称ES2015 ES6是继ES5之后的一次改进,相对于ES5更加简洁,提高了开发效率 ES6新增的一些特性: 1)let声明的变量和const声明的常量,两个都有块级作用域ES5中是没有块级作用域的,并且var有变量提升,在let中 使用的变量一定要进行声明。 2)箭头函数ES6中的函数定义不再使用关键字function(),而利用了()=>来进行定义 3)模板字符串是增强版的字符串,用(`)标识,可以当做普通字符串使用,也可以用来定义多行字符串 4)解构赋值ES6中允许按照一定模式,从数组和对象中提取值,对变量进行赋值。 5)for of 循环和for ...of 循环可以遍历数组、Set和Map结构、某些类似数组的对象、对象,以及字符串。 6)import、export导入导出ES6标准中,JS原生支持模块(module)。将JS代码分隔成不同功能的小块进行模块化, 将不同功能的代码分别写在不同的文件中,各模块只需导出公共接口的部分,然后通过模块的导入的方式可以在其他地方使用。 7)set数据结构,类似数组。所有的数据都是唯一的,没有重复的值

《Go语言实战》读书笔记

不问归期 提交于 2019-12-06 12:19:31
中文版只有240页,如果读者有其他编程语言的基础,那这是很好的一本入门书籍。 第1章:关于 Go 语言的介绍 Go 语言是现代的、快速的,带有一个强大的标准库。 Go 语言内置对并发的支持。 Go 语言使用接口作为代码复用的基础模块。 第2章:快速开始一个 Go 程序 如果需要声明初始值为零值的变量,应该使用 var 关键字声明变量;如果提供确切的非零值初始化变量或者使用函数返回值创建变量,应该使用简化变量声明运算符。 当代码导入了一个包时,程序可以直接访问这个包中任意一个公开的标识符。这些标识符以大写字母开头。以小写字母开头的标识符是不公开的,不能被其他包中的代码直接访问。 在 Go 语言中,所有变量都被初始化为其零值。对于数值类型,零值是 0;对于字符串类型,零值是空字符串;对于布尔类型,零值是 false;对于指针,零值是 nil。对于引用类型来说,所引用的底层数据结构会被初始化为对应的零值。 不仅仅是Go语言,很多语言都允许一个函数返回多个值。一般会像RetrieveFeeds函数这样声明一个函数返回一个值和一个错误值。如果发生了错误,永远不要使用该函数返回的另一个值。这时必须忽略另一个值,否则程序会产生更多的错误,甚至崩溃。 根据经验,如果需要声明初始值为零值的变量,应该使用 var 关键字声明变量;如果提供确切的非零值初始化变量或者使用函数返回值创建变量

PHP语法

吃可爱长大的小学妹 提交于 2019-12-06 11:33:47
PHP标记: PHP解析文件是以下面三种方式作为起始和结束标记: 1.<?php 代码 ?> 2.<? 代码 ?> 3.<script language="php"> 代码 </script> 多用第1种和第3种方式,它们之间的是需要解析的代码,这种解析方式可让PHP能被嵌入到不同文档中,而在起始和结束标记之外的代码会被PHP解析器忽略。 这里要注意的是:若是使用第1种方式,紧随"<?php"后面的必须是 空格\t ,或是 换行符\n ,或是 回车\r ,或是 空字符串\s ,而不能类似:<?php代码?>,否则会解析失败。 注释: 1.单行注释可使用 "//"或"#": <?php // 代码 ?> 或 <?php #代码 ?> 2.多行注释可使用起始/*和结束*/,这里注意注释在碰到第一个*/时就会结束,所以要确保不会嵌套 比如: <?php /* 代码; /*此处代码注释碰到第一个结束标记了*/ */ ?> 这是一个好的注释风格: <?php //====================================================================== // CATEGORY LARGE FONT //======================================================================

[C]链接和生存周期

眉间皱痕 提交于 2019-12-06 10:20:31
链接和生存周期的区别: 链接是标识符的属性; 生存周期是对象的属性; 链接可以是外部(external),内部(internal)或没有(none); 生存周期可以是自动的、静态的,或已分配的(allocated); 链接: 一个被声明在多个翻译单元内的标识符,或者在同一个翻译单元内被声明多次的标识符,可以每次指向相同的对象或函数。如 示例4 ,具有外部链接的变量,引用的都是同一个对象; 如果该标识符具有链接,那么它和其他跟它一样具有相同链接的标识符共享一个对象或函数; 只有对象和函数标识符可以有外部或内部链接!所以一些预处理指令不能跨编译单元访问; 概念 概念 属于该状态的声明 例外 关于隐藏 外部链接 具有外部链接的标识符,表示整个程序内都是相同的函数或对象。编译器会将这种标识符交给连接器(linker),由链接器解析(resolve)这类标识符,并且把其他翻译单元和链接库中的相同标识符链接起来。 函数外部使用了不带存储修饰符的函数和对象标识符; 函数外部使用了extern存储修饰符的函数和对象标识符(事实上这是一个不规范的写法,如果你明确这个变量需要被外部引用,最好就是不带任何存储修饰符,如果必要这样做,你需要写成这样 示例3 ); 函数内部带extern的对象,而这个对象在外部具有外部链接; 如果标识符已经被声明为内部链接,在第一次声明的作用域内做第二次声明

Go 语言基础语法-Go

偶尔善良 提交于 2019-12-06 09:53:33
Go 标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成: fmt.Println("Hello, World!") 6 个标记是(每行一个): 1. fmt 2. . 3. Println 4. ( 5. "Hello, World!" 6. ) 行分隔符 在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。 如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。 以下为两个语句: fmt.Println("Hello, World!") fmt.Println("菜鸟教程:runoob.com") 注释 注释不会被编译,每一个包应该有相关注释。 单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。如: // 单行注释 /* Author by 菜鸟教程 我是多行注释 */ 标识符 标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。 以下是有效的标识符: mahesh kumar abc

存储持续性、作用域和链接性

荒凉一梦 提交于 2019-12-06 08:50:31
存储持续性、作用域和链接性 c++中使用3中不同的方案存储数据 c++11中使用4中不同的方案存储数据。 这些方案的区别在于数据保留在内存中的时间。 自动存储持续性 在函数定义中声明的变量的存储持续性为自动的。2种 静态存储持续性 在函数定义外定义的变量和使用关键字static定义的变量的存储持续性为静态。他们在整个程序运行过程中都存在。3种 线程存储持续性c++11 多核处理器中很常见。如果变量是使用thread_local声明的,则其生命周期和所属线程一样长。 动态存储持续性 使用new运算符分配的内存将一直存在,直到使用delete运算符将其释放或程序终止为止。有时被称为自由存储或堆。 作用域和链接 作用域描述了名称在文件的多大范围可见。 作用域为局部的变量只能在定义它的代码块中用。 作用域为全局的变量在定义位置到文件结尾之间都可用。 自动变量为局部作用域。静态变量为全局作用域还是局部作用域取决于它是如何被定义的。 在函数原型作用域中使用的名称只在包含参数列表的括号内使用。 在类声明的成员的作用域为整个类。 在名称空间中的声明的变量的作用域为整个名称空间。全局作用域是名称空间作用域的特例。 c++函数的作用域为整个类或整个名称空间。但不能是局部。因为不能在代码块中定义函数。如果函数作用域为局部,则只对之间可见。不能被其他函数调用。 链接性描述了名称如何在不同单元间共享

jni介绍

早过忘川 提交于 2019-12-06 08:30:36
JNI JNI 是 Java Native Interface 的缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、 操作系统 进行交互,或者为了提高 程序 的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。 一、JNI(Java Native Interface)的设计目的 ·The standard Java class library may not support the platform-dependent features needed by your application. ·You may already have a library or application written in another programming language and you wish to make it accessible to Java applications ·You may want

js中(function(){…})()立即执行函数写法理解(经过控制台测试后修改)

依然范特西╮ 提交于 2019-12-06 08:28:37
( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此。要理解立即执行函数,需要先理解一些函数的基本概念。 函数声明、函数表达式、匿名函数 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。 函数表达式 var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。 匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。 函数声明和函数表达式不同之处在于,一、Javascript引擎在解析javascript代码时会‘函数声明提升’(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到Javascirtp引擎执行到它所在行时