ES6新特征数字、数组、字符串


Posted in Javascript onOctober 01, 2016

一、let和const

let:声明变量,只在声明的块级作用域(大括号)内起作用[注意:let不向var那样可以自动提升]

如果一个区块内存在let或const命令,该区块就被解析成封闭作用域(暂时性死区,必须先声明再使用) [所以一个区块内只要有let,就可能存在死区,就可能会出现变量声明使用顺序的错误]

let为JavaScript增加了块级作用域

ES6中在块级作用域声明的函数不能在外部被引用,但在ES5中可以(ES5中的函数声明可以提升到全局作用域或函数作用域头部,ES6中不行,但是ES6位了避免对老代码的冲击放开了新的规定)

const声明值不能被改变的常量

const声明对象的时候指向的是地址而不是具体数据,所以不可变的是地址

let、class、const在全局声明的变量不再是全局变量,不再挂载到window对象上

二、变量的解构赋值

解构赋值:模式匹配,左右两侧通过数组的模式匹配复制,不需要一个个赋值了,如:

var [a, b, c] = [1, 2, 3] [这种事数组解构,按位置赋值]

还可以对象解构,没有次序要求,按照变量名赋值:

var {bar, foo} = {foo: “aaa”, bar: “bob”};

字符串解构:const [a, b, c, d, e] = ‘hello';

三、字符串的扩展

\uxxxx表示一个字符,后加字符的四位码点

codePointAt:正确处理4个字节储存的字符

String.fromCharCode():将码点返回成对应的字符串

for…of可以遍历字符串 比如for(let a of “hello”){console.log(a);} 打印出hello各个字母

类似indexOf()的方法:includes()是否找到参数字符串;startsWith/endsWith是否在字符串头/尾部

repeat():将原字符串复制n次返回新字符串 ‘x'.repeat(3) //xxx

模版字符串:使用反引号

字符串中可以使用正则表达式的方法:match()/replace()/search()/split()

可以为正则表达式添加u字符,用来处理中文等

四、数值的扩展

0b开头二进制;0o开头八进制

Number.isNaN()/Number.inFinite() 检测一个数是否是NaN/有限值,只对数值有效

Number.isInteger() 判断是否是整数

Math.trunc() 去除一个数的小数部分;Math.sign() 判断一个数是正数、负数、零

Math.cbrt() 计算一个数的立方根;Math.hypot() 求所有参数的平方和的平方根

五、数组的扩展

Array.from():将类数组对象转换成数组,还可以传入第二个参数,作用类似map,对每个元素操作

ES6中:var arr = Array.from(arrayLike);

ES5中:var arr = [].slice.call(arrayLike);

Array.of():将一组值转换为数组

find()方法:找到第一个符合条件的数组成员,参数是一个回调函数,每个成员都执行一次回调函数

[1, 5, 10, 15].find(function(value, index, arr) { //当前值、索引、原数组
return value > 9;
})

fill()方法:用来填充一个数组,fill(value, start, end),表示从start开始end截止使用value填充

ES6规定数组中空位的值是undefined,注意不是这个位置是undefined而事这个位置的值的undefined

以上所述是小编给大家介绍ES6新特征数字、数组、字符串,希望对大家有帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的。

Javascript 相关文章推荐
JS字符串函数扩展代码
Sep 13 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 Javascript
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
JS中递归函数
Jun 17 Javascript
浅谈Vue-cli 命令行工具分析
Nov 22 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
May 23 Javascript
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
webpack proxy 使用(代理的使用)
Jan 10 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 #Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
You might like
php session处理的定制
2009/03/16 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
python http基本验证方法
2018/12/26 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
python 多进程队列数据处理详解
2019/12/23 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
外包公司软件测试工程师
2014/11/01 面试题
网站推广策划方案
2014/06/04 职场文书
锦旗标语大全
2014/06/23 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
世界红十字日活动总结
2015/02/10 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Python 键盘事件详解
2021/11/11 Python
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL