es6学习笔记(四)

一. 字符串扩展

1. unicode表示的改进

  es5支持unicode表示字符,限于\u0000--\uFFFF之间的字符,超出范围的字符用双字节形式表达

console.log("\u0061"); // "a"
console.log("\u00611"); // "a1",即\u0061 + 1

  es6将码点放进大括号

console.log(‘\u{00611}‘); //不再是"a1";
console.log("\u{61}\u{62}\u{63}");  //abc

2. 字符串遍历(for...of)

for(let code of "foo"){
    console.log(code);
    // f
    // o
    // o
}

3. 字符串查找includes、startsWith、endsWith

es5几乎只有indexOf方法来判断一个字符串是否包含在另一个字符串中。

es6新增这三个方法:

includes:是否包含某个字符串。

startsWith:是否在头部。

endsWith:是否在尾部。

第一个参数是string,第二个参数n表示开始搜索的位置(endsWith针对前n个字符)

4. 字符串重复repeat

 将原字符串重复n次,返回新字符串。

二. 正则的扩展

es5中正则表达式对象有一下两种声明方式:

var regex = new RegExp(‘[a-z]‘, ‘i‘);
// 等价于
var regex = /[a-z]/i;

es6允许第一个参数为正则表达式

var reg = new RegExp(/[a-z]/, ‘i‘);

1. 能用正则表达式做参数的字符串方法

var str = "abc";
console.log(str.match(/[a-z]/g));// 检索指定的值,返回数组
console.log(str.replace(/[a]/,"b")); //替换字符
console.log(str.search(/[b]/));  //检索指定字符串,返回索引值
console.log(str.split(/[]/)); //分割字符串,返回数组

2. 属性

es5 :source属性获取正则表达式正文

es6 :sticky属性是否使用了y修饰符、flags属性获取正则表达式修饰符

三. 数值的扩展

1. 进制表现法

二进制:0b111110111 === 503

八进制:0o767 === 503

十进制:Number("0b111110111") // 503

2. Number对象的方法与属性

  Number.isFinite() :是否有限

  Number.isNaN():是否为NaN

  Number.parseInt() 全局方法移到了Number对象上

  Number.parseFloat()  全局方法移到了Number对象上

  Number.isInteger() 是否为整数

  Number.EPSILON 常数,一个误差允许范围

  Number.MAX_SAFE_INTEGER / Number.MIN_SAFE_INTEGER:最大安全整数 / 最小安全整数

  Number.isSafeInteger()  :是否为安全整数

3. Math对象

  Math.trunc():去除小数点部分,返回整数

  Math.sign():判断正数、负数、零。正数返回+1、负数返回-1、0返回+0、-0返回-0、其它返回NaN

  Math.cbrt():计算立方根

  Math.clz32():返回数值32位二进制前导0的个数

  Math.hypot():所有参数平方和的平方根(勾股定理的长边)

  三角函数方法

四. 数组的扩展

1. Array.form:将类似数组的对象和可遍历的对象转化为数组。

2. Array.of:将一组值转化为数组

3. 实例方法Array.prototype.copyWithin(target,start,end):数组成员复制并覆盖

4. 实例方法Array.prototype.find(callback) / Array.prototype.findIndex(callback) :数组成员依次执行回调函数

5. 实例方法Array.prototype.fill():填充数组

6. 实例方法entries()(键值对遍历)、keys()(键名遍历)、values()(键值遍历)

7.实例方法Array.prototype.includes():是否包含给定值

时间: 2024-10-07 15:47:35

es6学习笔记(四)的相关文章

ES6学习笔记<四>

default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; val_2 = val_2 || 20; return console.log(val_1 + val_2); } add(); // 30 而现在可以这么做 function add_1(val_1 = 5,val_2 = 10){ return console.log(val_1 + val_

es6学习笔记初步总结

es6学习笔记初步总结 1. let.const 和 block 作用域 在ES6以前,var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: let 关键词声明的变量不具备变量提升(hoisting)特性 let 和 const 声明只在最靠近的一个块中(花括号内)有效 当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING const 在声明时必须被赋值 否则报语法错误SyntaxError

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

NLTK学习笔记(四):自然语言处理的一些算法研究

自然语言处理中算法设计有两大部分:分而治之 和 转化 思想.一个是将大问题简化为小问题,另一个是将问题抽象化,向向已知转化.前者的例子:归并排序:后者的例子:判断相邻元素是否相同(与排序). 这次总结的自然语言中常用的一些基本算法,算是入个门了. 递归 使用递归速度上会受影响,但是便于理解算法深层嵌套对象.而一些函数式编程语言会将尾递归优化为迭代. 如果要计算n个词有多少种组合方式?按照阶乘定义:n! = n*(n-1)*...*1 def func(wordlist): length = le

Android学习笔记四:添加Source

问题描述 Source not foundThe JAR file D:\.....\sdk\platforms\android-20\android.jar has no source attachment. 问题原因及解决办法 1. 使用SDK Manager下载最新版本的Sources for Android SDK 一般文件下载目录默认在SDK下的sources文件中即 \adt-bundle-windows-x86_64-20130522\sdk\sources\android-20

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期