一、字符串的扩展
1. 用于从码点返回到对应字符。
 String.fromCodePoint(xx)
2. for...of可以遍历字符串
3. includes():返回布尔值,表示是否找到了参数字符串。
    startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
    endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
 (第一个参数:要搜索的目标字符,第二个参数:开始搜索的位置)
 (endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。)
4. repeat( n) n:字符串重复的次数,0--1取0,小于0报错,大于1四舍五入
5. padStart()用于头部补全,padEnd()用于尾部补全。
    padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。
 (如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。)
 (如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。)
 (如果省略第二个参数,默认使用空格补全长度。)
   另一个用途是提示字符串格式。例子:
 ('12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
   '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12")

二、正则的扩展
1.    字符串对象有4个方法:match()、replace()、search()和split()。
2.   修饰符增加:i/g/S/y/u

三、数值的扩展
1.  Number.isFinite()用来检查一个数值是否为有限的(finite)
  (注意:如果参数类型不是数值,Number.isFinite一律返回false。)
    Number.isNaN()用来检查一个值是否为NaN。
  (注意:如果参数类型不是NaN,Number.isNaN一律返回false。)
2. ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面。
3. Number.isInteger() 判断是否是整数。(25 和 25.0 被视为同一个值。)
4. Math.trunc() 去除一个数的小数部分
    Math.sign() 判断一个数到底是正数、负数、还是零,对于非数值,会先将其转换为数值。
    (参数:正数--->+1;负数--->-1;0--->0;-0--->-0;其他值,返回NaN) 
    Math.cbrt方法用于计算一个数的立方根。
    Math.clz32()方法将参数转为 32 位无符号整数的形式,然后这个 32 位值里面有多少个前导 0。
    Math.fround方法返回一个数的32位单精度浮点数形式。
    Math.hypot方法返回所有参数的平方和的平方根。
5. 指数运算符(**)
   (例子:a **= 3; // 等同于 a = a * a* a;)

四、函数的扩展
1. rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
  注意,rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
(例子:
    const headAndTail = (head, ...tail) => [head, tail];
    headAndTail(1, 2, 3, 4, 5)
   // [1,[2,3,4,5]])
2. 注意:箭头函数有几个使用注意点。
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(this对象的指向是可变的,但是在箭头函数中,它是固定的。)
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
3. setInterval和setTImeout中的this指向window,使用3种方法可以改变this指向,指向obj
  (1).var that = this;//将this存为一个变量that,此时的this指向obj
  (2).setTImeout(function(){.........this.num1}.bind(this),1000);//这里的this 指向obj
  (3).箭头函数;setTImeout(()=>{.......this.num1},1000); //箭头函数的this指向外层调用者,obj

箭头函数的this:

this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this

导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。

ES6笔记(二)的更多相关文章

  1. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  2. ES6笔记(1) -- 环境配置支持

    系列文章 -- ES6笔记系列 虽然ES6已经发布一年多了,但在各大浏览器之中的支持度还不是很理想,在这查看ES6新特性支持度 Chrome的最新版本浏览器大部分已经支持,在Node.js环境上支持度 ...

  3. ES6笔记(2)-- let的块级作用域

    系列文章 -- ES6笔记系列 一.函数级作用域 我们都知道,在ES6以前,JS只有函数级作用域,没有块级作用域这个概念 没有块级作用域,有利有弊,利于方便自由,弊于作用域内的变量容易被共享,例如这个 ...

  4. ES6笔记(3)-- 解构赋值

    系列文章 -- ES6笔记系列 解构赋值,即对某种结构进行解析,然后将解析出来的值赋值给相关的变量,常见的有数组.对象.字符串的解构赋值等 一.数组的解构赋值 function ids() { ret ...

  5. ES6笔记(7)-- Promise异步编程

    系列文章 -- ES6笔记系列 很久很久以前,在做Node.js聊天室,使用MongoDB数据服务的时候就遇到了多重回调嵌套导致代码混乱的问题. JS异步编程有利有弊,Promise的出现,改善了这一 ...

  6. ES6 笔记汇总

    ES6 笔记汇总 二.ES6基础-let和const命令 三.变量的解构赋值 四.字符串的拓展 五.正则表达式的拓展 ...将会持续更新,敬请期待

  7. ES6笔记(5)-- Generator生成器函数

    系列文章 -- ES6笔记系列 接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术. 在异步编程中,还 ...

  8. ES6笔记系列

    ES6,即ECMAScript 6.0,ES6的第一个版本是在2015年发布的,所以又称作ECMAScript 2015 如今距ES6发布已经一年多的时间,这时候才去学,作为一个JSer,羞愧羞愧,还 ...

  9. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  10. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

随机推荐

  1. quill富文本编辑器 API

    //1. 从第三个开始删除,删除4个 // console.log(this.quill.deleteText(2, 4)); // 12345678 1278 // 2.(返回对象)返回从第三个开始 ...

  2. Win+E、D等快捷键失灵

    [摘要]:系统win+e等快捷键失效不能使用. [问题分析]:软件或其他操作更改了注册表信息导致. [解决方案]: 1.在开始运行输入regedit点击确定 2.在打开的注册表编辑器找到HKEY_CU ...

  3. 安装LNMP笔记

    安装好centos7,主机ssl连不上 网卡设置为桥接模式或NAT模式 防火墙的原因 首先telnet本机22口 先更新yum源 yum update -y 安装网络常用工具:telnet trace ...

  4. 【MySQL】InnoDB 内存管理机制 --- Buffer Pool

    InnoDB Buffer Pool 是一块连续的内存,用来存储访问过的数据页面 innodb_buffer_pool_size 参数用来定义 innodb 的 buffer pool 的大小 是 M ...

  5. PL/SQL数据类型

    在定义变量或常量时,必须要指定一个数据类型,PL/SQL是一种静态类型化的程序设计语言,静态类型化又称为强类型化,也就是说类型会在编译时而不是在运行时被检查,这样在编译时便能发现类型错误,以便增强程序 ...

  6. PHP遍历二叉树

    遍历二叉树,这个相对比较复杂. 二叉树的便利,主要有两种,一种是广度优先遍历,一种是深度优先遍历. 什么是广度优先遍历?就是根节点进入,水平一行一行的便利. 什么是深度优先遍历呢?就是根节点进入,然后 ...

  7. 【Alpha】Scrum Meeting 10

    目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第10次会议于4月14日19:00在教一316召开. 交流确认了任务进度,对下一阶段任务进行分配.时长40min. 任务分配 姓名 当前阶 ...

  8. iOS 与 Swift 方法互相调用

    1.OC调用swift 在OC项目中创建一个swift文件时,Xcode会提示 需要创建一个桥接文件,点击确定创建桥接文件,Xcode会自动创建一个桥接文件,名字:工程名-Bridging-Heade ...

  9. 安装Office2016遇到“无法流式传输Office”问题

    安装Office2016遇到“无法流式传输Office”问题,请问如何解决 很抱歉,找不到所需的文件,请检查安装源是否可访问,然后再试. 错误代码:30068-39(2) ============== ...

  10. 基于三层架构项目下的Ado【六】

    一.基于三层架构项目下的Ado增删改查总结,提示:现在一般都是使用EF框架操作. 1. 先在model层创建出一个和你将会查询出一样类型的表,比如你将查询出的有五个字段,那么你就需要创建出一个和你查询 ...