10.20随笔

ES6

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。

这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。

 

模板对象 

 

新的语法  $ {NAME},并把它放在反引号里

 

 

遍历数组

 

var arr=['jack','rose','lucy','lolita'];
console.log('原始for循环:');
for(var i=0;i<arr.length;i++){
console.log(i+' '+arr[i]);
}
console.log('ESS[forEach]:');
arr.forEach(function(value,index){
console.log(index+' '+value);
})
console.log('for-in:');
for(var i in arr){
console.log(i+' '+arr[i]);
}
console.log('ES6[for-of]:');
for(var name of arr){
console.log(name);
}
var arr2=[56,88,100,'99',150,1818];
//过滤数组(filter)
arr2=arr2.filter(function(value,index){
return value>100;
})
console.log(arr2);
//遍历的同时修改
arr=arr.map(function(value,index){
return 'welcome:'+value+' '+index;
})
console.log(arr);
新的集合 ☆
Arry set map三者的区别?

小结:对比三种存储介质

Array: 有序集合,下标是唯一的,值是可以重复的

Set   : 无序集合,没有下标,值就是唯一的

Map : 无序集合,采用键值对形式存储数据,键(key)是唯一的,值可以重复

 

set

 

 

map

 

 

var myset = new Set("ABCDEAB");//实际存储的值是:ABCDE,因为会自动过滤重复的值
console.log(myset.size);//Set集合的长度:0
myset.add("W");//给Set添加一个值
myset.delete("A");//从Set中删除A
myset.clear();//清空整个Set集合
console.info(myset.has("X")) // 检索Set中是否有X这个值
console.info(myset[2]) // Set不支持索引,所以这行会报错
Array.from(myset);//Set转数组

key-value
var maps = new Map();
maps.set("username", "小三");//存储三组数据
maps.set("age", 20);
maps.set("sex", "男");
console.log(maps.get("username"));//通过Key取出
console.log(maps.size);//返回长度:3
console.log(maps.has("sex"));//是否有该key
console.log(maps.delete("age"));//根据key删除一个值
//      console.log(map.clear());//清空
console.log(maps);//输出整个map集合
console.info(maps.keys());//返回Key的集合
console.info(maps.values());//返回Value的集合
面向对象的方法

Object.create():根据原型创建一个子类对象(继承的另一种形式)

 

ct.defineProperty(Obj,property,{}); 在一个对象上定义新的属性

 

Object.defineProperties(对象名,要添加的属性): 为对象一次定义多个属性

 

 

 

 

修饰器set和get

 

 

 

 

 

默认参数

 

 

 

 

 

拓展运算符 三个点(...)

将一根数组转换为用逗号分隔的参数列表

 

 

 

let 和 var ☆

的区别?

1.定义的变量作用域只是封闭块,而不是整个函数

2.var定义变量声明提前,也就是可以在创建前获取,但结果是undefined;

而let不存在声明提前,所以如果在创建前获取,会报错的

3.var定义的全局变量是属于window的,可以通过window取出来 (window点的出来);

而let定义的全局不属于window (window点不出来)

 

 

 

const常量
特点 通常全局 局部时等于let效果
1.常量不让后来修改
2.常量必须有初始值
3.如果将const定义的变量放在块级作用域中,则与let效果一样

 

 

解构
1.逗号隔开,用来批量赋值 (按顺序去赋值) 2.使用解构进行变量的交换 [a,b]=[b,a]

 

 

箭头函数

首先,我们发现省略了function,用()代替。

其次,{}被=>代替了。

最后,里面return没有了,因为它将暗地里返回单个语句的结果。如果你超过了一行,将需要明确使用return。

最重要的是,在ES6中的内层函数里,可以潇洒的使用this,它代表的就是外层函数的 ☆☆

this。因为箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。

 

新增写法

String:

 

repeat();重复当前字符串多少次 重复多少次

console.log(“ABC".repeat(3));//ABCABCABC

 

includes();检测当前字符串是否包含某个字符串,包含返回true ☆ 检测是否包含

console.log(“ABC".includes("A"));//true

 

startsWith();检测某字符串是否在源字符串的头部,包含返回true ☆ 是不是以啥开头

console.log(“ABC".startsWith("B"));//false

 

endsWith();检测某字符串是否在源字符串的尾部,包含返回true ☆是不是以啥结尾

console.log("ABC".endsWith("C"));//true

 

Math:

 

Math.trunc();不进位的去除小数点

console.log(Math.trunc(3213.5));//3213

 

Math.sign();如果参数数字是正数,返回1;如果是负数,返回-1;如果是0,返回0

console.log(Math.sign(3213.5));//1

console.log(Math.sign(-3213.5));//-1

console.log(Math.sign(0));//0

☆用来判断当前数字的正负数
map和weakmap的区别? ☆
它两的结构类似也是用于键值对的集合
区别:weakmap只接受object对象作为键名(null)除外,方法只有set(),get(),has(),delete()
weakup没有遍历方法,size属性,clear方法

转载于:https://www.cnblogs.com/liuyangya/p/9833033.html

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

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

相关文章

极客招募令!兄弟杯区块链极客竞技大赛在上海等您来战!

据悉&#xff0c;由国内首家区块链技术社区区块链兄弟主办&#xff0c;旺链科技、离子链、中国云体系产业创新战略联盟、无退社区、指旺金科等单位强力支持&#xff0c;HiBlock区块链社区、火球财经、布洛克财经、海豚区块链、区块网等百家技术社区和媒体通力合作的兄弟杯区块链…

Java中Web程序修改配置文件不重启服务器的方法

见&#xff1a;http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 另&#xff1a;http://ekisstherain.iteye.com/blog/1701463 jrebel 、JavaRebel是什么&#xff0c;见另一博客&#xff1a;jrebel/JavaRebel 开发环境 1. JDK 2. MyEclipse 3. Tomcat 4. Struts2 5.…

ffmpeg-0.6.3 移植到 windows 开源代码

ffmpeg-0.6.3开源编码解码库&#xff0c;从linux下移植到windows vs2005&#xff0c;全部开源。 需要 Intel C Compile 和 开源的SDL库支持&#xff0c;由于 Intel C Compile支持C99语法&#xff0c;所以源代码改动很小很小。 主要的修改 1&#xff1a;添加了linux中有而wind…

一起唠唠分布式锁

&#xff08;1&#xff09;分布式锁和分布式事务的区别 1.分布式锁是在集群环境下&#xff0c;用来控制不同机器对全局共享资源的访问。 2.分布式事务是在集群环境下&#xff0c;用来保证全局事务的一致性&#xff0c;保证多个数据库的数据整体上能正确的从一个一致性状态转到…

luogu2577/bzoj1899 午餐 (贪心+dp)

首先&#xff0c;应该尽量让吃饭慢的排在前面&#xff0c;先按这个排个序 然后再来决定每个人到底去哪边 设f[i][j]是做到了第i个人&#xff0c;然后1号窗口目前的总排队时间是j&#xff0c;目前的最大总时间 有这个i和j的话&#xff0c;再预处理出前i个人的排队总时间sum[i]&a…

wpf中xps文档合并功能实现

原文:wpf中xps文档合并功能实现跟着上一篇的xps文档套打的文章&#xff0c;近期一直在研究xps打印技术&#xff0c;其中用户提到了一个需求&#xff0c;要求能够多页面进行打印&#xff0c;我的想法是&#xff0c;先生成xps文件&#xff0c;然后将文件读取出来以后&#xff0c;…

DCT(离散余弦变换(DiscreteCosineTransform))

离散余弦变换&#xff08;Discrete Cosine Transform&#xff0c;简称DCT变换&#xff09;是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中&#xff0c;如果被展开的函数是实偶函数&#xff0c;那么其傅立叶级数中只包含余弦项&#xff0c;再将其离散化可导出余弦…

从源码看ConcurrentHashMap

简介 ConcurrentHashMap是线程安全的HashMap实现&#xff0c;这里主要研究JDK8后的ConcurrentHashMap&#xff0c;下面是ConcurrentHashMap的简单结构&#xff1a; ConcurrentHashMap基于HashMap的基本逻辑&#xff0c;通过CAS synchronized 来保证并发安全性。ConcurrentHas…

代码重构的方法

见&#xff1a;http://blog.csdn.net/u011889786/article/details/51865344 见&#xff1a;http://blog.csdn.net/weiky626/article/details/1602691 一.提取子函数 说白了就是一个大函数里&#xff0c;可以根据不同功能分成几个小函数&#xff0c;因为说不定&#xff0c;其他…

android 去掉标题栏、状态栏、横屏

// 去掉标题栏supportRequestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏、隐藏状态栏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION…

Spring Boot 整合Mybatis (一)

2019独角兽企业重金招聘Python工程师标准>>> 新建spring-boot项目&#xff0c;相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><de…

x264 的 cache详解

在这里和下一级别的分析中有必要先讲一下这个h->mb.cache&#xff08;没法讲&#xff0c;就是cache!&#xff09;。 x264_macroblock_cache_load将参考帧中某位置的&#xff08;重建后&#xff09;数据保存进cache&#xff0c;供参考和反复使用。 x264_macroblock_cache_s…

同步/异步阻塞/非阻塞

平时开发中经常会听大家说到什么同步阻塞、异步非阻塞等等名词&#xff0c;这里我谈下自己对这两个名词的理解&#xff0c;仅仅是个人观点&#xff0c;并不一定正确。 1.阻塞/非阻塞 我认为判定阻塞还是非阻塞&#xff0c;取决于线程所做的操作是否需要将线程挂起等待。 举个…

Repeater的使用

1.页面代码 如果要分页&#xff0c;那么页面开头必须写&#xff08;<% Register Src"~/Controls/Page.ascx" TagName"Page" TagPrefix"uc1" %>&#xff09; 并且分页&#xff0c;页脚<uc1:Page ID"Page2" runat"server&…

springboot 整合 mongodb实现 批量更新数据

现需求&#xff1a;需要批量将1000个数据先查询在更新到mongodb&#xff08;如果查询不到数据&#xff0c;则添加数据&#xff09; 1&#xff1a;工具类BathUpdateOptions 1 import org.springframework.data.mongodb.core.query.Query;2 import org.springframework.data.mong…

【开题报告】基于微信小程序的校园资讯平台的设计与实现

1.选题背景与意义 随着移动互联网的快速发展&#xff0c;微信成为了人们日常生活中不可或缺的工具之一。在校园生活中&#xff0c;学生们对于校园资讯的获取和交流需求也越来越高。然而&#xff0c;传统的校园资讯发布方式存在信息不及时、传播范围有限等问题&#xff0c;无法…

三种Cache写入方式原理简介

三种Cache写入方式原理简介 在386以上档次的微机中&#xff0c;为了提高系统效率&#xff0c;普遍采用Cache&#xff08;高速缓冲存储器&#xff09;&#xff0c;现在的系统甚至可以拥有多级Cache。Cache实际上是位于CPU与DRAM主存储器之间少量超高速的静态存储器&#xff08;S…

Minor GC和Full GC

我们在日常开发中可能经常会听大家谈论GC&#xff0c;但是其实很多人对GC的种类其实并不是很了解&#xff0c;接下来我们简单介绍下Minor GC和Full GC及他们的区别。 MinorGC&#xff1a; 也可以叫作新生代GC&#xff0c;指的是发生在新生代的垃圾收集动作。因为新生代中对象大…

linux安装软件的几种方法

见&#xff1a;http://blog.csdn.net/u010509774/article/details/50593231 一、rpm包安装方式步骤&#xff1a; 1、找到相应的软件包&#xff0c;比如soft.version.rpm&#xff0c;下载到本机某个目录&#xff1b; 2、打开一个终端&#xff0c;su -成root用户&#xff1b; …

Android NDK MediaCodec在ijkplayer中的实践

https://www.jianshu.com/p/41d3147a5e07 从API 21&#xff08;Android 5.0&#xff09;开始Android提供C层的NDK MediaCodec的接口。 Java MediaCodec是对NDK MediaCodec的封装&#xff0c;ijkplayer硬解通路一直使用的是Java MediaCodec接Surface的方式。 本文的主要内容是&a…