ES6杂碎

1、let声明的变量没有变量提升;

2、const声明的变量:块级作用域内有效,存在暂时性死区,变量指向的那个内存地址不得改动;

3、...tail解构出来的是数组或空数组

let [head, ...tail] = [1, 2, 3, 4];
head //1
tail //[2, 3, 4]

4、Iterator(遍历器)是一种接口,作用:一是为各种数据结构,提供一个统一的、简便的访问接口,二是使得数据结构的成员能够按某种次序排列,三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。

  在ES6中,有三类数据结构原生具备Iterator接口:数组某些类似数组的对象(例如:字符串)SetMap结构。

  默认调用Iterator接口的情况:

  *解构赋值

  *扩展运算符(...)

  *任何接受数组作为参数的场合

  只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值

5、解构赋值,默认值生效的条件是,对象的属性值严格等于undefined

var {x = 3} = {x: undefined};
x //3  默认值生效var {x = 3} = {x: null}; 
x //null   默认值不生效

 6、u修饰符

用来正确处理大于\uFFFF的Unicode字符(中文字)。

var s = '级';/^\uD83D/u.test('\uD83D\uDC2A') //false /^\uD83D/.test('\uD83D\uDC2A') //true

\uD83D\uDC2A是一个4字节的UTF-16编码,代表一个字符。但是,ES5不支持4字节的UTF-16编码,会将其识别为2个字符,导致第二行代码结果为true。
加上了修饰符以后,ES6就会识别其为一个字符,所以第一行代码结果为false.

 7、如果函数foo调用时参数不是对象,变量x和y就不会生成,从而报错。

function foo ({x, y = 5}) {console.log(x, y)
}foo({}) //undefined, 5
foo({x: 1}) //1, 5
foo({x: 1,y: 2}) //1, 2
foo() //TypeError: Cannot read property 'x' of undefined

 

转载于:https://www.cnblogs.com/krystalcl/p/9562173.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

koa --- 自制简易的koa-router

打算自己写一个简单的Router类,来实现koa-router这个中间件的(部分)神奇功能 确定需求 1.首先导入需要在app.js里面导入自己写的Router类 2.然后是使用的方式和挂载router的方式 // 导入Router类 const Router require(./components/router.js);// 使用方式,(暂时只对get请…

MariaDB 脚本

研究MariaDB&#xff0c; 需要mock up一些假数据&#xff1a; 生成n个长度整型数的函数rand_num&#xff1a; CREATE DEFINERrootlocalhost FUNCTION rand_num(n INT) RETURNS int(5) begin DECLARE i INT DEFAULT 0; DECLARE result INT DEFAULT 0; WHILE i < n DOSET re…

Promise的基本使用

利用Promise是解决JS异步执行时候回调函数嵌套回调函数的问题&#xff0c; 更简洁地控制函数执行流程&#xff1b; 通过new实例化Promise&#xff0c; 构造函数需要两个参数&#xff0c; 第一个参数为函数执行成功以后执行的函数resolve&#xff0c; 第二个函数为函数执行失败…

软工作业PSP与单元测试训练

一、实现模块判断传入的身份证号码的正确性&#xff1b; 二、针对所实现的模块编写对应的单元测试代码&#xff1b; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.u…

koa --- nunjucks

安装: npm install koa-nunjucks-2 --save目录结构 |--- controller/ | |--- home.js |--- service/ | |--- home.js |--- views/ |--- app.js |--- router.jsapp.js // (部分) const nunjucks require(koa-nunjucks-2); app.use(nunjucks({ext: html,path: path.joi…

DNN模型训练词向量原理

转自&#xff1a;https://blog.csdn.net/fendouaini/article/details/79821852 1 词向量 在NLP里&#xff0c;最细的粒度是词语&#xff0c;由词语再组成句子&#xff0c;段落&#xff0c;文章。所以处理NLP问题时&#xff0c;怎么合理的表示词语就成了NLP领域中最先需要解决的…

天平称重【递归解法】

用天平称重时&#xff0c;我们希望用尽可能少的砝码组合称出尽可能多的重量。如果只有5个砝码&#xff0c;重量分别是1&#xff0c;3&#xff0c;9&#xff0c;27&#xff0c;81则它们可以组合称出1到121之间任意整数重量&#xff08;砝码允许放在左右两个盘中&#xff09;。 本…

算法 --- reduce的使用.

描述: 难点: 将[[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]]输出为[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 关键代码描述: 1.假设我们已经根据输入的数字得到了 rawArr [[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]] 2. 下一步将rawArr[0…

SpringBoot、mysql配置PageHelper插件

一&#xff1a;https://blog.csdn.net/h985161183/article/details/79800737 主要异常&#xff1a;org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration: pageHelper.…

字符串的拆分以及分隔符所在不同位置的删除

try { //根据imComuserGroupMng获取这个数据库的所有ImComuserGroup数据 List<ImComuserGroup> list imComuserGroupMng.findAllComuserGroup(); //便利实体数据list为数据的集合 …

算法 --- 递归生成括号

问题描述 思路: 1.首先生成n个括号 2.左括号数量(记为l)不超过n 3.右括号数量(记为r)不超过n,且优先生成左括号(即 l < r) 4.需要设计一个递归式h(str,l,r) // 一开始,str , l 0, r 0 // 第一步进去,添加左括号, str(, l 1, r 0 // 然后因为 l < n . r < l 所以…

使用 TypeScript 改造构建工具及测试用例

最近的一段时间一直在搞TypeScript&#xff0c;一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中&#xff0c;关于前端基于webpack的TypeScript套路之前也有提到…

JavaScript 验证表单不为空和获取select下拉列表的值和文本

1.验证表单不为空 var hasform { "Name": "名字", "Id_card": "身份证", "PaySalary": "月工资", "CardCode": "账号", "Fk_Subjectf_Code": &quo…

javascript --- 变量污染全局作用域问题解决方案

日常写法 // 假设你写了几个关于某个某块的函数 function foo1 () {...} function foo2 () {...} function foo3 () {...}出现问题:假设你的团队中也有一个人定义了foo1函数,那么你写的将会覆盖以前的函数,或者会被覆盖掉.若前面使用let声明了foo1变量.将会报错. 解决污染 你…

solr7.4 安装与使用

1.solr7环境要求 solr7需要java8环境&#xff0c;且需要在环境变量中添加 JAVA_HOME变量。 2.solr 安装 下载地址 https://lucene.apache.org/solr/mirrors-solr-latest-redir.html 我下载为7.4版本 在solr5以前solr的启动都有tomcat作为容器&#xff0c;但是从solr5以后solr内…

初入HTML5

在最开始接触HTML5的时候&#xff0c;你会遇到的大多是一些常见常用的属性以及属性值。它们分类广、品种杂且使用率高。到css各种样式的时候&#xff0c;你会接触到更多的东西&#xff0c;各种属性、选择器、盒子模型都是重点。那么&#xff0c;现在我们就看一下它们到底是什么…

javascript --- 让函数的实例可以链式调用

关键: 在每个函数的末尾加上 return thisthis:在javascript中表示当前的对象 栗如: 有以下函数 var fooObj {foo1: function() {console.log(1);},foo2: function() {console.log(2);},foo3: function() {console.log(3);} }// 你想通过 fooObj.foo1().foo2().foo3() // …

ReactiveCocoa基础

本文转载自最快让你上手ReactiveCocoa之基础篇&#xff0c;在此基础上稍作修改&#xff0c;欢迎交流。 有关对 ReactiveCocoa 的看法可以看一下唐巧的这篇ReactiveCocoa 讨论会 ReactiveCocoa思维导图ReactiveCocoa简介 ReactiveCocoa&#xff08;简称为RAC&#xff09;,是由Gi…

javascript --- 创建一个二维数组

想创建一个 n*n 的矩阵,并全部赋予初始值false 你可能会想到下面 let arr []; for(let i 0 ;i< n;i) {arr[i] [];for( let j 0; j< n; j){arr[i][j] false;} }稍微封装一下: function Cmatrix(n, c) {let arr [];for (let i 0; i < n; i) {arr[i] [];for (le…

配置OpenCV产生flann\logger.h(66): error C4996: ‘fopen': This function or variable may be unsafe问题

转载自&#xff1a;http://guoming.me/%E9%85%8D%E7%BD%AEopencv%E4%BA%A7%E7%94%9Fflannlogger-h66-error-c4996-fopen-this-function-or-variable-may-be-unsafe%E9%97%AE%E9%A2%98 今天使用vs2012配置OpenCV编译出现问题: 1>—— 已启动生成: 项目: Win32ForOpenCV245, 配…