函数声明

ES6学习之——let和const命令

荒凉一梦 提交于 2019-12-01 16:39:52
let命令 基本用法 ES6新增,用来声明变量,用法类似 var ,所声明的变量,只在 let 命令所在的代码块内有效 { let a = 10; var b = 1; } a // a is not defined b // 1 let和var在for循环中的对比 // var声明 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 声明的,在全局范围内都有效,所以全局只有一个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的 function 在运行时,会通过闭包读到这同一个变量 i ,导致最后输出的是最后一轮的 i 的值,也就是10。 而如果使用 let ,声明的变量仅在块级作用域内有效,最后输出的是6。 // let声明 var a = []; for (let i = 0; i < 10; i++) { a[i] = function() { console.log(i); }; } a[6](); // 6 上面代码中,变量 i 是 let 声明的,当前的 i 只在本轮循环有效,所以每一次循环的 i 其实都是一个新的变量,所以最后输出的是 6 。你可能会问

js

旧城冷巷雨未停 提交于 2019-12-01 16:35:58
ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式添加JSON支持 2011 ECMAScript 5.1 版本变更 2015 ECMAScript 6 添加类和模块 2016

C#的发展历程第五 - C# 7开始进入快速迭代道路

为君一笑 提交于 2019-12-01 16:21:21
转载至 C#的发展历程第五 - C# 7开始进入快速迭代道路 目录 out变量 值元组 本地函数 模式匹配 返回结果引用 一些其它小改进 C# 7.1 C# 7.2 C# 7开始,C#加快了迭代速度,多方面的打磨让C#在易用性,效率等各方面都向完美靠近。另外得益于开源,社区对C#的进步也做了很大共享。下面带领大家看看C# 7的新特性。其中一部分是博主已经使用过,没用过的根据官方文档进行了整理。 回到顶部 out 变量 有一定C#编程经历的园友一定没少写如下这样的代码: int speed; if (int.TryParse(speedStr, out speed)) speed*=10; 为了增加程序的健壮性,在进行类型转换时使用 TryXXX 方法是很好的实践。但由于这样的写法实在太显啰嗦,所以常常我们认为转换一定能正确进行时就会偷懒直接用 Parse 了事,当然这样就给程序留下了出现异常的隐患。现在有了out变量支持,可以以如下方式编写安全的转换: if (int.TryParse(speedStr, out int speed)) speed*=10; 虽然 if 还在,但少了孤零零的变量声明,代码看起来已经很美观了,终于可以快乐的编写健壮的代码了。 out 变量也支持类型推导,把 out 后面的 int 换成 var 也是完全可以了。另外speed变量的作用域不限于 if

(译) Google Kotlin CodeStyle · Averson

社会主义新天地 提交于 2019-12-01 15:43:14
Google 官方 Kotlin 编码风格翻译 源文件 所有源文件编码必须是 UTF-8 。 命名 如果源文件只包含一个顶级类(Top-level),文件名应该命名为大写小敏感和 .kt 拓展名。其他情况如果源文件包含多个顶级声明,则选择一个描述文件内容的名称,使用驼峰命名法,并附上名称和 .kt 拓展名。 Top-level 解释请参考该 链接 12345678910 class { }// Bar.kt class Bar { }fun Runnabel.toBar() : Bar = // ...// Map.kt -> 描述文件内容的命名fun <T, O> Set<T>.map(func: (T) -> O): List<O> = // …fun <T, O> List<T>.map(func: (T) -> O): List<O> = // … 特殊编码 空格 除了换行,它是 ASCII 水平方向字符 (0x20) 唯一能出现在源文件中的空格。 0x20 表示空格 这意味着: 所有其他空格字符在字符串和字符源文本中均被转义 制表符 不 用于缩进 源文本(literal),是指程序源代码中用来表示固定的值的符号序列。例如在大多数语言中,引号包围的字符序列即为字符串源文本(string literal),表示一个特定的字符串值。 特殊的转义序列 对于任何具有特殊转义的字符

day53

风流意气都作罢 提交于 2019-12-01 13:38:13
引入方式 Script标签内写代码 <script>//在这里面写JS代码</script> 引入额外的JS文件 <script src="myscript.js"></script> 语言规范 注释 // 单行注释 /* 多行 注释 */ 结束符 JavaScript中的语句要以分号(;)为结束符 JS语言基础 变量声明 JavaScript的变量名可以使用_ ,数字,字母,$组成,不能以数字开头 声明变量使用 var 变量名 ;的格式来进行声明 var name = "Alex"; var age = 18; 注意: 变量名是区分大小写的。 推荐使用驼峰式命名规则。 保留字(关键字)不能用做变量名。 补充: ES6新增了let命令,用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。例如:for 循环的计数器就很适合使用let命令。 var=['a','b','c','d'] for (let i=0; i<arr.length; i++){console.log(i)} i ''' 会报错i is not defined at <anonymous>:1:1 ''' 但是 for (var i=0; i<arr.length; i++) {console.log(i)} i """ 不会报错,输出4 """ ES6新增const用来声明常量

初级C++2类与对象

蓝咒 提交于 2019-12-01 12:12:21
对象 object |--属性 attribute |--行为 behaviour 调用对象中的函数就是向该对象传送一个消息 message 封装性 encapsulation |--一是将有关数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰 |--二是将对象中某些部分对外隐藏,即隐藏其内部细节,只留下少量接口,以便与外界联系,接受外界的消息,即信息隐藏 information hiding 抽象 abstraction 抽象的作用是表示同一类事物的本质。 类 继承与重用 软件重用 software reusability 多态性 polymorphism 面向过程:程序 = 数据结构 + 算法 面向对象:程序 = 对象s + 消息 ————————————————————————————————————— 类class 类是对象的抽象,对象是类的具体实例(instance) 类头 class head 类体 class body 成员列表 class member list 类中成员默认是private struct成员默认是public class 类名 { private: 私有数据和成员函数 public: 公用数据和成员函数 }; 成员访问限定符 member access specifier |--私有的 private

前端之Javascript

江枫思渺然 提交于 2019-12-01 11:29:35
前端之JavaScript JavaScript引入方式 Script标签内写代码 <script>// 在这里写代码//</script> 引入额外的JS文件 <script> src="myscript.js"</script> JavaScript语言规范 注释 // 这是单行注释 /* 这是 多行注释 */ 结束符 JavaScript中的语句要以分号(;)为结束符 JavaScript语言基础 变量声明 JavaScript的变量名可以使用_,数字, 字母,$组成, 但是不能以数字开头. 声明变量使用 var变量名 ;的格式来进行声明 var name = 'Kang'; var age = 18 注意: 变量名是区分大小写的. 推荐使用驼峰式命名规则. 保留字不能用作变量名 也可以使用let命令来声明变量,但是声明的变量只在let命令所在的代码块内有效. for循环的计数器就很适合let命令. for (let i=0;i<arr.length;i++){...} 也可以使用const来声明常量, 一旦声明, 其值就不能改变. const PI = 3.1415; PI // 3.1415 PI = 3 //TypeError: "PI" is read-only JavaScript数据类型 JavaScript拥有动态类型 var x; /

java8 lamada表达式

99封情书 提交于 2019-12-01 10:30:00
1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -> x + y; 参数类型也可以省略,Java编译器会根据上下文推断出来: (x, y) -> x + y; //返回两数之和 或者 (x, y) -> { return x + y; } //显式指明返回值 可见λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。 下面这个例子里的λ表达式没有参数,也没有返回值(相当于一个方法接受0个参数,返回void,其实就是Runnable里run方法的一个实现): () -> { System.out.println("Hello Lambda!"); } 如果只有一个参数且可以被Java推断出类型,那么参数列表的括号也可以省略: c -> { return c.size(); } 2. λ表达式的类型(它是Object吗?) λ表达式可以被当做是一个Object(注意措辞)。λ表达式的类型,叫做“目标类型(target type)”。λ表达式的目标类型是“函数接口(functional interface)”,这是Java8新引入的概念。它的定义是:一个接口,如果只有一个显式声明的抽象方法

JavaScript

元气小坏坏 提交于 2019-12-01 10:22:56
目录 1. JavaScript引入方式 2. JavaScript语言规范 3. JavaScript语言基础 4. JavaScript数据类型 4.1 数值(Number) 4.2 字符串(String) 4.3 布尔值(Boolean) 4.4 对象(Object) 4.4.1 数组 4.5 类型查询 4.6 运算符 4.7 流程控制 4.8 三元运算 4.9 函数 4.9.1 函数定义 4.10 函数的全局变量和局部变量 4.11 Date对象 4.12 JSON对象 4.13 RegExp对象 1. JavaScript引入方式 Script标签内写代码 <script> 'JS代码' </script> 引入额外的JS文件 <script src="myscript.js"></script> 2. JavaScript语言规范 注释(注释是代码之母) // 这是单行注释 /* 这是 多行注释 */ 结束符 JavaScript中的语句要以分号(;)为结束符 3. JavaScript语言基础 变量声明: JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。 声明变量使用 var 变量名; 的格式来进行声明 var name = 'aa' var age = 18 注意: ​ 变量名是区分大小写的 ​ 推荐使用驼峰式命名规则 ​

前端之JavaScript

大兔子大兔子 提交于 2019-12-01 10:19:06
目录 前端之JavaScript JavaScript概述 ECMAScript的历史 JavaScript引入方式 Script标签内写代码 引入额外的JS文件 JavaScript语言规范 注释(注释是代码之母) 结束符 JavaScript语言基础 变量声明 JavaScript数据类型 数值(Number) 字符串(String) slice和substring的区别 布尔值(Boolean) null和undefined 对象(Object) 数组 类型查询 运算符 算数运算符 比较运算符 逻辑运算符 赋值运算符 流程控制 if-else switch for while 三元运算 函数 函数定义 函数中的arguments参数 函数的全局变量和局部变量 内置对象和方法 自定义对象 Date对象 JSON对象 RegExp对象 Math对象 前端之JavaScript JavaScript概述 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式添加JSON支持 2011 ECMAScript 5.1