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 相关文章推荐
优化JavaScript脚本的性能的几个注意事项
Dec 22 Javascript
突发奇想的一个jquery插件
Nov 19 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
详解参数传递四种形式
Jul 21 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
JavaScript之Date_动力节点Java学院整理
Jun 28 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 Javascript
微信小程序实现聊天室功能
Jun 14 Javascript
使用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学习笔记汇总
2014/10/05 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
js获取视频时长代码
2014/04/10 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
python实现爬虫下载漫画示例
2014/02/16 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
浅析python的优势和不足之处
2018/11/20 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
django框架forms组件用法实例详解
2019/12/10 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
Python中pass的作用与使用教程
2020/11/13 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
产品售后服务承诺书
2014/05/21 职场文书
中秋手机店促销方案
2014/06/16 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
CentOS MySql8 远程连接实战
2022/04/19 MySQL