简介 多数主流编程语言都提供了若干种复杂数据结构,而在ES6以前,js只有数组和对象两种 ES6为了弥补这一方面的不足,引入了四种新的数据结构 它们分别是:映射(Map)、集合(Set)、弱集合(WeakSet)和弱映射(WeakMap) 正文 Set类似数组,但是成员的值都是唯一的,没有重复的值 let set = new Set([1, 2, 3, 3]) console.log(set) /
简介 ES6对正则的扩展不多,而且几乎全都是用不到的扩展 这一节内容会很少,但是正则依旧很常用,很重要 正文 ES6为正则表达式新增了flags属性,会返回正则表达式的修饰符 /abc/ig.flags // 'gi' 以前,js只支持先行断言(lookahead)和先行否定断言(negative lookahead) 不支持后行断言(lookbehind)和后行否定断言(negative loo
简介 ES6对于对象的扩展不多,只有一些常用的简洁写法和一些新增API 在ES8中新增了对象的扩展运算符 ... 不过我们可以在Babel转译后使用它 正文 ES6中,对象的属性可以使用简洁表示法来简写 let foo = 'bar' let baz = {foo} // 等同于 let baz = {foo: foo} let obj = { method () {} } // 等同于 le
简介 ES6对函数的扩展比较多,主要有三点:新的书写方式,参数,扩展运算符 另外还有关于严格模式和性能优化的变动,初学者暂时可以跳过这些,这里不做详细说明 这一章节的知识点非常重要,可能是ES6中最常用的知识点之一 正文 ES6中我们可以使用“箭头”(=>)定义函数。 var f = v => v 箭头左侧是参数,右侧是函数要执行的代码 如果要执行的代码只有一条语句,这条语句的运行结果就是函数的返
简介 ES6中,数组新增了一系列好用的API 还有一个非常重要而且常用的语法:扩展运算符 正文 扩展运算符写作三个点(…),可以把一个可遍历的对象解开,转为用逗号分隔的序列 console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('di
简介 number是JavaScript基本类型之一 ES6中提供了新的八进制,十六进制数值表示方法,但是我们基本不会用到,下面将不会介绍这一知识点 ES6主要对Math对象做了一些扩展,新增了一些和数学关系密切的API 正文 在ES6以前,我们使用isNaN这个全局方法判断一个值或者变量是否是NaN ES6中,Number对象上也添加了isNaN方法,并且与以前的isNaN有重要的区别 isNa
简介 JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。 变量则是他们的载体 在 ES6 以前,声明一个变量只有两种方式 —— var 和 function ES6 新增四种声明变量指令 let , const , import 和 class,这里只介绍前两种,后两种将在后面章节中说明 注意:本书只讨论思路,不探
Gradle 项目的构建描述定义在项目根目录下的 build.gradle 文件中。(查看 Gradle User Guide 了解更多 Gradle 相关知识)
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。 HTTP的发展是万维网协会(World Wide Web Conso
本章介绍 Java 的语言基础。
6.2 Metasploit基础 Metasploit是一款开源的安全漏洞检测工具。它可以帮助用户识别安全问题,验证漏洞的缓解措施,并对某些软件进行安全性评估,提供真正的安全风险情报。当用户第一次接触Metasploit渗透测试框架软件(MSF)时,可能会被它提供如此多的接口、选项、变量和模块所震撼,而感觉无所适从。Metasploit软件为它的基础功能提供了多个用户接口,包括终端、命令行和图形化
基础知识 基于 ruby 写的 官网文档:https://www.elastic.co/guide/en/logstash/5.2/first-event.html 如果是通过网络来收集,并不需要所有机子都装,但是如果是要通过读取文件来收集,那文件所在的那个机子就的安装 配置文件的写法格式:https://www.elastic.co/guide/en/logstash/5.2/configura
举个例子,我们可以创建一个指定泛型类: class TypedClass<T>(parameter: T) { val value: T = parameter } 这个类现在可以使用任何的类型初始化,并且参数也会使用定义的类型,我们可以这么做: val t1 = TypedClass<String>("Hello World!") val t2 = TypedClass<Int>(25)
3 Node 基础 3.1 安装 打开 Node官网 ,引入眼帘的就是它的下载地址了,windows下提供的是安装程序(下载完之后直接双击安装),linux下提供的是源码包(需要编译安装),详细安装流程这里省略掉,我想这个不会难倒各位好汉。 3.2 旋风开始 在讲 Node 语法之前先直接引入一段 Node 的小例子,我们就从这个例子着手。首先我们在随意目录下创建两个文件 a.js b.js。 e
JDK1.7 ConcurrentHashMap的锁分段技术:假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术。首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访