1.一些历史 ES6(ECMAScript 6.0)是 JavaScript 语言的新一代标准,于2015 年 6 月正式发布,距今已经4年了,它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. 而我们现在所广泛使用的ES5版的JavaScript其实是ECMAScript 3.1改名的,因为ES4未通过审核,挂了.ES6于2000年开始积累,15年后正式发布,是一个历史性的重大变革. 支持ES6的浏览器据说已经超过90%,当然Node的支持最好,所…
变量的解构赋值种类 解构(Destructuring):ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值. 只有当一个数组成员严格等于(===)undefined,包括空“ ” ,默认值才会生效,null不全等于undefined,默认值不会生效. 第一种:数组的解构赋值 数组的元素是按次序排列的,变量的取值由它的位置决定: 第二种:对象的解构赋值 先找到同名属性,然后再赋给对应的变量.真正被赋值的是后者,而不是前者. 第三种:字符串的解构赋值 字符串被转换成了一个类似数组的对象.…
1.数组的解构赋值 1.1基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; ES6 允许写成下面这样. let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值.的确高大上了许多有木有. 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的…
变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; var c = 3; ES6允许写成下面这样: 1 var [a, b, c] = [1, 2, 3]; 这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果解构不成功,变量的值就等于undefined,下面是一些使用嵌套数组进行解构的例子: 1 2 3…
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数来创建的. function Person (name,age){ this.name = name; this.age = age; } Person.prototype.say=function(){ // 不能使用箭头函数(我差点忘记),因为 箭头函数没有pr…
学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也就是说,ES6就是ES2015. let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments 这些是ES6最常用的几个语法,基本上学会它们,我们…
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工程,再用一种简单的方法把这些小工程连接在一起. 这有可能导致两个问题: 一方面js代码变得很臃肿,难以维护 另一方面我们常常得很注意每个script标签在html中的位置,因为它们通常有依赖关系,顺序错了可能就会出bug 在es6之前为解决上面提到的问题,我们得利用第三方提供的一些方案,主要有两种…
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = function(){ console.log("say Hi!"); } document.getElementById("click_2").onclick = () => { let a = 1; let b = 2; console.log(a + b);…
ES6学习笔记:块级作用域 作用域分类 全局作用域 局部作用域 块级作用域 全局作用域示例 var i=2; for (var i = 0; i < 10; i++) { } console.log(i);//10 这里就出现了意料之外的结果,此种原因是变量提升造成过的 局部作用域示例 !(function () { console.log(b);//undefined var b = 2; })() 为什么会输出undefined,而不是报错? 此种也是变量提升造成的意料之外的结果,上面代码等…
ES6学习笔记(2019.7.29) 目录 ES6学习笔记(2019.7.29) let和const let let 基本用法 let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域 级作用域 ES6的块级作用域 块级作用域与函数声明 const 基本用法 本质 顶层对象 解构赋值 数组的解构 基本用法 默认值 对象的解构 基本用法 默认值 注意点 字符串的解构 数值布尔值的解构 函数参数的解构 圆括号问题 不能使用圆括号的情况 可以使用圆括号的情况 用途 for.for in.for…
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; val_2 = val_2 || 20; return console.log(val_1 + val_2); } add(); 而现在可以这么做 function add_1(val_1 = 5,val_2 = 10){ return console.log(val_1 + val_2); }…
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口(Interface),yield则是生成器函数中表示 返回 或 继续 执行的关键字. 弄清楚这两个概念后,先看一个例子: function* fun(val) { yield 1*val; yield 2*val; yield 3*val; yield 4*val; return 5*val; }…
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>,今天主要来分享关于如何用js面向对象的思维来实现tab栏的一些相关的功能. 要实现的功能分析 点击tab栏可以切换效果 点击+号,可以添加tab项和内容项 点击X号,可以删除当前的tab项和内容项 点击tab文字或者内容项文字,可以修改里面的字体内容 抽像对象: Tab对象 (增删改查功能)实现功能效果如下图…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 5------------------------------ 删除口令 例子:删除tom用户的口令 [root@localhost ~]# passwd -d tom 清除用户的密码 tom. passwd: 操作成功 [root@localhost ~]# cat /etc/shadow ... tom::15659:0:9999…
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string,list ,set ,sorted set 和hash . Redis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中不能包括边界字符.由于key不是binary safe的字符串,所以像"my key"和"mykey\n&…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12------------------------------ --进程调度 at调度 方法:at [选项] [时间] 功能:设置是定时间执行的指定的命令 主要选项: -f(file) 文件名 从指定文件而非标准输入设别获取要执行的命令 -l(list) 文件名 显示等待执行的作业调度 -d(delete) 删除指定的调度作业 说明…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 4------------------------------ 保存文件和退出 方法: :w 文件 保存为指定文件,执行完毕后不关闭打开的文档 :q 退出vi,如果指定文件内容有改动,将出现提示信息.使用下面的命令才能退出vi :q! 不保存文件,直接退出 :wq  存盘并保存 :e! otherfile 停止编辑当前文件,并且不保存…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122   说明:主要是在REHL Server 6操作系统下进行的测试 --字符界面虚拟终端与图形界面之间的切 方法:[Alt+F1]~[Alt+F6] 功能:从字符界面的虚拟终端切换到其它虚拟终端 方法:[Ctrl+Alt+F2]~[Ctrl+Alt+F6] 功能:从图形界面切换到字符界面的虚拟终端 方法:[Ctrl+Alt+F1] 功能:从字符界面的其它虚拟终端切换到图形界面 --字符界面下的注销.重启与关机 方…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14------------------------------ 例子:将网卡的ip地址设置为192.168.0.3 [root@localhost laiyu]# ifconfig eth0 192.168.1.3 [root@localhost laiyu]# ifconfig eth0      Link encap:Ether…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13------------------------------ 2.第二.三行为进程和CPU的信息 当有多个CPU时,这些内容可能会超过两行,内容如下 Tasks: 201 total 进程总数 2 running 正在运行的进程数 199 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11------------------------------ 方法1:rpm -V 软件包 方法2:rpm -V[选项] 主要选项: -a(all) 验证所有的已安装软件包 -f(file) 文件  验证指定文件所属的软件包 功能:验证软件包是否正常,若一切正常则不输出任何内容.否则输出8位字符串.字符串中的字符表示某项验证失败,…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10------------------------------ tar与bzip2配套使用 方法:tar -cvf tarfile.tar.gz --use=bzip2 file   #注意,tar不能加z选项,否则冲突 功能:告诉tar使用某种压缩工具压缩归档文件 例子: [root@localhost tmp]tar cvf t…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9------------------------------ find命令 方法:find [路径] [选项] 表达式 说明:从指定路径开始向下搜素满足表达式的文件或目录,不指定目录路径时查找当前目录.当查找到用户不具有执行权限的目录时,屏幕将显示“权限不够”等提示信息. 主要表达式: -name 文件名 按文件名查找,可使用通配符…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8------------------------------ --修改文件权限的Shell命令 chmod命令 方法:chmod 数字模式 文件 方法:chmod 功能模式 文件 功能:修改文件的访问权限 说明: 数字模式为一组三位的数字,如755,644 功能模式可以由以下三部分组成 对象: u(user)      文件所有者…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 7------------------------------ --配额管理 设置文件系统配额[限制用户或组群在某个特定文件系统中所能使用的最大空间] 方法: 超级用户编辑/etc/fstab文件,指定实施配额管理的文件系统以及实施何种配额管理. 其次,执行quotacheck命令检查进行配额管理的文件系统并创建配额管理文件,然后用e…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6------------------------------ --磁盘管理的Shell命令 mount命令 方法:mount [选项] [设备名] [目录] 功能:将磁盘挂载到指定的目录.该目录即为此设备的挂载点.挂载点目录可以不为空.但必须存在.磁盘设备挂载后,该挂载点目录的源文件暂时不能显示且不能访问. 原目录上文件挂载卸载后,…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3------------------------------ 别名 方法:alias [别名= '标准Shell命令'] 功能:查看.设置别名.无参数的alias命令可以查看用户可使用的所有别名以及其对应的标准Shell命令,反之则设置别名 说明:用alias命令设置的用户别名命令,其有效期间仅持续到用户退出登录为止这段时间.如果希…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 2------------------------------ 一般来说,是按顺序进行命令格式的书写 如上可以得出一些命令: ethtool eth0 ethtool -s eth0 ethtool -s eth0 speed 10 #命令3 ethtool --change eth0 speed 10 #等价于命令3 …… 问题:帮…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 1------------------------------ less命令 方法:less 文件 功能:分屏显示文本文件的内容 例子:分屏显示文本文件.bash_history的内容 [laiyu@localhost ~]$ less .bash_history yum install scim -lang -chinese cd…
let和const let和const不存在变量提升 变量一定要在声明后使用,否则报错. var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 变量i是var声明的,在全局范围内都有效.所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值. var a = []; for (let i = 0; i < 10; i++) { a[i]…