ES6扩展
模板字符串和标签模板
const getCourseList = function() {
// ajax
return {
status: true,
msg: '获取成功',
data: [{
id: 1,
title: 'Vue 入门',
date: 'xxxx-01-09'
}, {
id: 2,
title: 'ES6 入门',
date: 'xxxx-01-10'
}, {
id: 3,
title: 'React入门',
date: 'xxxx-01-11'
}]
}
}; const { data: listData, status, msg } = getCourseList(); function foo(val) {
return val.replace('xxxx', '2020');
} if (status) {
let arr = []; listData.forEach(function({ date, title }) { arr.push(
`
<li>
<span>${ `课程名: ${ title }` }</span>
<span>${ foo(date) }</span>
</li>
`
); }); let ul = document.createElement('ul');
ul.innerHTML = arr.join(''); document.body.appendChild(ul); } else {
alert(msg);
}
padStart padEnd
{
let str = 'i';
// 插入在5的位置
let str1 = str.padStart(5, 'mooc');
console.log(str1);
// 倒序插入在5的位置
let str2 = str.padEnd(5, 'mooc');
console.log(str2);
}
repeat
{
function repeat(str, num) {
return new Array(num + 1).join(str);
}
console.log(repeat('s', 3));
}
startsWith endsWith
{
const str = 'A promise is a promsie'; console.log(str.startsWith('B'));
console.log(str.startsWith('A pro')); console.log(str.endsWith('promsie'));
console.log(str.endsWith('A'));
}
includes
{
const str = 'A promise is a promise';
if (~str.indexOf('promise')) {
console.log('存在"promise"');
} if (str.includes('a promise')) {
console.log('存在"a promise"');
}
}
字符串转数组+遍历
let str = 'PROMISE';
// 四种方法:转成数组后遍历
var oStr = Array.prototype.slice.call(str);
var oStr = str.split('');
const oStr = [...str];
const [...oStr] = str;
console.log(oStr);
//单个字符输出
oStr.forEach(function(word) {
console.log(word);
});
对全是英文的字符串中的大写字符加密 A -> 100 B -> 99
const map = {A: '100', B: '99', C: '98', D: '97', E: '96', F: '95', G: '94', H: '93', I: '92', J: '91', K: '90', L: '89', M: '88', N: '87', O: '86', P: '85', Q: '84', R: '83', S: '82', T: '81', U: '80', V: '79',W: '78',X: '77',Y: '76', Z: '75'};
const words = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; oStr.forEach(function(word, index) {
if (words.includes(word)) oStr[index] = map[word];
});
console.log(oStr.join(''));
使用for-of遍历字符串
let str = 'PROMISE';
let newStr = '';
const map = {A: '100', B: '99', C: '98', D: '97', E: '96', F: '95', G: '94', H: '93', I: '92', J: '91', K: '90', L: '89', M: '88', N: '87', O: '86', P: '85', Q: '84', R: '83', S: '82', T: '81', U: '80', V: '79',W: '78',X: '77',Y: '76', Z: '75'};
for (let word of str) {
if (str.includes(word)) newStr += map[word];
}
console.log(newStr);
Unicode是一项标准,包括字符集、编码方案等
解决传统的字符编码方案的局限
ES6扩展的更多相关文章
- ES6...扩展运算符(数组或类数组对象)
数组和类数组对象定义 数组:[] 类数组对象:只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象. 数组使用 let foo_arr = [ ...
- ES6扩展运算符的几个小技巧
es6扩展运算符,也就是... ,作用是将一个数组转为用逗号分隔的参数序列. 那么问题来了,我们为啥要用这么奇怪的东东涅,当然因为它能大大提高我们的开发效率.所以,可别小看这三个点. 1.复制数组( ...
- ES6 模版字符串及常用的es6扩展方法
1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb' ...
- 关于ES6扩展属性
ES6 let和const let命令 只在代码块作用域内有效 不存在变量提升(不能在申明之前赋值) 暂时性死区(在区域内不受外部变量影响) 不允许重复申明(在相同代码块区域内) 块级作用域 let为 ...
- ES6 扩展运算符 三点(...)
含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[, , ]) // 1 2 3 conso ...
- ES6 扩展运算符 三个点(...)
它是什么 es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScrip ...
- ES6 扩展运算符
ES6的扩展运算符则可以看作是rest参数的逆运算.可以将数组转化为参数列表. 如:console.log(1,...[2,3,4],5) //1 2 3 4 5 用于合并数组: [1,2, ...m ...
- ES6扩展运算符...进行的数组删除
今天写了按照React小书写了Reducer,发现基础真是太重要了,所有关于上层建筑的细节都需要回到下层细节中去寻找,而且现在的基础也由ES3变成了ES6了. const ADD_USER = &qu ...
- es6 扩展运算符 三个点...
es6中引入扩展运算符…,它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScript也支持扩展运算符 ...
- Es6扩展运算符--三点运算符(...)--展开语法(Spread syntax)
0.看文档呀 关于拓展运算符更详细的解释见 > MDN展开语法 关于剩余参数更详细的解释见 >MDN剩余参数 关于解构赋值更详细的解释见 >MDN解构赋值 直接看上面的文档更好 1. ...
随机推荐
- BZOJ 3339 Rmq Problem(离线+线段树+mex函数)
题意: q次询问,问[l,r]子区间的mex值 思路: 对子区间[l,r],当l固定的时候,[l,r]的mex值对r单调不减 对询问按照l离线,对当前的l,都有维护一个线段树,每个叶节点保存[l,r] ...
- Comet OJ Contest #0 解方程(暴力)
题意: 给定自然数n,求满足$\displaystyle \sqrt{x-\sqrt{n}}=\sqrt{z}-\sqrt{y}$的x,y,z,输出解的个数以及所有解 xyz的和 n<=1e9, ...
- 《Python学习手册 第五版》 -第1章 问答环节
第一章的主要内容是解疑答惑的,这个部分也是很适合初学者的,回答了大部分初学者所关注的问题 1.为什么使用Python,或者说Python的优点, 作者是分为两个部分来谈的,人们使用中的经验总结以及Py ...
- Spring Boot从入门到精通(二)配置GitHub并上传Maven项目
简单介绍一下GitHub,它是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub. GitHub于2008年4月10日正式上线,除了Git代码仓库托管 ...
- C++括号匹配检测(用栈)
输入一串括号,包括圆括号和方括号,()[],判断是否匹配,即([]())或[([][])]为匹配的正确的格式,[(])或([())为不匹配的格式. #include<iostream> # ...
- ELF文件之三——使用链接脚本-2个函数
main.c int main() { ; } int add() { ; } main.o的比较 与之二相比,section header offset由0x90变为0xA4,增加0x14,即add ...
- oracle系列练习题
刚学习Oracle,老师给我们布置了一些题目来练习. 题目: 创建四个表,并录入数据 1.student表 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, ...
- apache/tomcat安装过程略
apache/tomcat安装过程略 一些变量 apache安装目录 APACHE_PREFIX=/Data/app/apache apache配置文件 APACHE_CONF=/etc/httpd/ ...
- vue路由+vue-cli实现tab切换
第一步:搭建环境 安装vue-cli cnpm install -g vue-cli安装vue-router cnpm install -g vue-router使用vue-cli初始化项目 vue ...
- 封装dropdown模块(使用到之前写好的动画组件,封装下拉菜单)
用 showhide 改写dropdown 模块: 1.首先在 css中新增动画相关样式 /*showhide组件的样式*/ .fadeOut{ opacity:; visibility: hidde ...