【ES6】---JavaScript(二)

一、数组中新增的方法

    1、Array.of()

// Array.of():函数作用:将一组值,转换成数组
var arr = Array.of(1,2,3,4);
console.log(arr);// [1,2,3,4]

   2、Array from函数

// Array.from:将伪数组转换为数组
var aLi = Array.from(document.getElementsTagName("li"));
console.log(aLi instanceof Array);

      3、Array.find()

// 作用:通过条件查找数据,如果条件符合返回第一个符合条件的数据
var arr = [1,2,3,4];
var n = arr.find(function(item,index,array){
  return item>3;
})

console.log(n) // 4

  4、Array.findIndex()

// 查找数组中符合条件的数据的下标,
// 查找到返回相对应下标,没有查找到返回undefine
var arr = [1,2,3,4];
var n = arr.findIndex(function(item,index,array){
  return item>3;
})

console.log(n) // 3

   5、Array.fill()

// 对数组进行填充
// 语法:arr.fill("填充的值",开始下标,结束下标)

var arr = [10,20,30,40];
arr.fill("Alley",1,3);
// [10, "Alley", "Alley", 40]

  

二、for of && iterator

1、for of

/*
  for of循环 必须是遍历的可迭代的对象
  for of兼容性还不够,移动端安卓微信浏览器貌似不支持,Safari的可以;
  web端IE支持也不够,chrome可以。
  for in 循环 key值代表的是属性
  for of 循环 item代表的是值
*/

var arr = [10,20,30,40];
for(let item of arr){
  console.log(item);// 10 20 30 40
}

  

2、iterator

/*
  iterator是一种机制,它是一种接口。为各种不同的数据结构提供了统一的
  访问机制。任何数据只要有了iterator接口,就可以完成遍历操作
作用:
    1、为各种数据结构,提供统一接口,简便访问接口
    2、使数据结构的成员能够按照某种次序排列
    3、ES6新增的for of循环 iterator接口主要提供for of消费
*/

// 手写iterator接口
function iterator(arr){
    let index = 0;
    return {
        next(){
            if(index<arr.length){
                return {value:arr[index++],done:false}
            }else{
                return {value:undefined,done:true}
            }
        }

    }
}

var obj = [1,2,3,4];
let it = iterator(obj);
it.next();// {value: 1, done: false}
it.next()// {value: 2, done: false}
it.next();// {value: 3, done: false}
it.next()// {value: 4, done: false}
it.next()// {value: undefined, done: false}
/*
 1、iterator遍历的过程:
   每一次调用next方法都会返回数据结构的当前成员信息,具体来说,
   就是返回一个包含value和done的属性对象,其中value属性是当前对象,
   done属性是一个布尔值,表示遍历是否结束
 2、ES6规定,凡是具有Symbol.iterator属性的数据结构都具有Iterator接口
 3、对象默认是没有Symbol.iterator属性的,因此如果想要进行遍历,必须手
 动添加
*/

   3、给对象添加iterator函数

Object.prototype[Symbol.iterator] = function values() {
        console.log(this);
        var index = 0;
        var keys = Object.keys(this);
        var _this = this
        return {
            next() {
                if(index < keys.length){
                   return { value: _this[keys[index++]], done: false };
                 }else{
                    return {value: undefined, done:true };

                }
            }
        }
    }

    var obj = {
        name: "张三",
        age: 19,
        sex: "男"
    }

for(let value of obj){
    console.log(value);
}

  

三、函数
1、函数参数默认值

// ES6之前函数如何设定默认值
function fn(x){
    var x = x || 0;
}

// ES6函数默认值
function fn(x = 0){}
// 如果传递了就用传递的参数,如果没有传递则x值等于0

      2、剩余参数

function fn(a,...rest){
    console.log(...rest);// [2,3,4,5]
}

fn(1,2,3,4,5);
// fn这个函数中 a接收对应参数1  ...rest以数组形式接收剩余参数

  3、箭头函数

// 语法一:
  var fn = (a)=>{
      console.log(a);
  }
// 简单的来说箭头函数就是将function 换成了()=>

 // 语法二:
 var fn = a=>a;
 // 当前函数意思为 返回函数a这个值,如果不写{}默认表示return

 //语法三:

 var fn = a =>({});
// 当前函数意思为  返回一个对象

/*
 箭头函数特点:
   1、没有this指向,this的指向会指向声明时离自己最近的那个作用域的对象
   2、箭头函数中没有arguments这个参数
   3、不能当做构造函数
   4、箭头函数不能当做generator函数
  */

  四、Set集合

/*
 Set:集合
   1、它类似于数组,但成员的值是唯一的,没有重复的值,并且是无序的
   2、set是一个构造函数
   3、set每次执行完毕以后都会返回一个set,因此可以通过链式操作来进行
   操作
*/

let s = new Set();
//添加
s.add("a").add("b"); 

//删除 返回值是一个布尔值
s.delete("a");

//判断a是否为set的成员返回一个布尔值
s.has("a");

//清除所有,没有返回值
s.clear();

//返回所有键名
s.keys();
//返回所有value值
s.values()

//返回所有键值对
 s.entries() 

 //通过for of可以得到每一个值

  五、Map字典类型结构

/*
  1、字典:用来存储不重复key的hash结构,不同于set集合,字典使
  用的[键,值]的形式来存储的
  2、map执行完毕后都会返回一个map因此可以进行链式操作
  3、特点:
  普通对象只能通过字符串来当做key值,但是Map可以用任意值来当做key值
*/

1、创建map对象
  let map = new Map([
      ["a",1];
   ])
   console.log(map);// {"a"=>1}

    2、获取map长度
        map.size

    3、添加数组
        map.set("key",val);

    4、获取map值
        map.get("key")

    5、删除数据
        map.delete("key");

    6、判断当前map中是否存在某个值
        map.has("key");

    7、清除所有数据
        map.clear();

    8、获取所有map key值
        map.keys();

    9、获取所有map value值
        map.values()

    10、获取所有map键值对
        map.entries()

    11、遍历map对象
        forEach

 //注意:map中key值得顺序都是按照添加的顺序来排列的

  

原文地址:https://www.cnblogs.com/yuanjili666/p/11683375.html

时间: 2024-10-11 14:55:11

【ES6】---JavaScript(二)的相关文章

ES6:JavaScript 新特性

5月14日,国务院发布了<国务院关于同意建立深化收入分配制度改革部际联席会议制度的批复>,同意建立由发改委牵头的深化收入分配制度改革部际联席会议制度.这是对政府一年多前首次发布的关于收入分配制度改革若干意见的落实,标志着中国收入分配改革迈出了实质性一步.根据批复,联席会议由国家发改委.财政部.人力资源和社会保障部等21个部门和单位组成.发改委主任徐绍史担任联席会议召集人,其他成员单位有关负责人为联席会议成员. 国务院下发的文件显示,部际联席会议制度的主要职责包括:在国务院领导下,统筹协调做好深

从头开始学JavaScript (二)——变量及其作用域

原文:从头开始学JavaScript (二)--变量及其作用域 一.变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符. 定义:var firstDemo; 二.变量的作用域 2.1基本概念 使用var 定义变量:定义该变量的作用域的局部变量,这种定义变量的方法也被成为显式声明. 这么说不理解的话可以看看下面这个简单粗暴的例子: test();function test(){var firstDemo="hello

javascript二维矩阵的乘法。

百度&谷歌竟然搜不到"javascript二维矩阵的乘法",那我就自己写一个分享给大家.(我写的是两个n*n的二维矩阵的乘法) 下面又到了贴代码的时候了: function matrixMultiplication(a,b){ var len=a.length,arr=[]; for(var i=0;i<len;i++){ arr[i]=[]; for(var j=0;j<len;j++){ arr[i][j]=0;//每次都重新置为0 for(var k=0;k&

JavaScript二(第一个js程序)

一.<script>xxxx</script>标签解析 1.charset :可选,表示通过src属性指定的字符集,由于大多数浏览器忽略它,所以很少有人用它2.defer:可选.表示脚本可以延迟到文档完全解析和显示之后再执行,由于大多数浏览器不支持,故很少用3.language:已经废弃.原来用于代码使用的脚本语言,由于大多数的浏览器都忽略它,所以不要用4.src:可选,表示包含要执行代码的外部文件5.type:必需,可以看作是language的替代品,表示代码使用的脚本语言的内容

es6 javascript对象方法Object.assign()

es6 javascript对象方法Object.assign() 2016年12月01日 16:42:34 阅读数:38583 1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). [javascript] view plain copy var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assig

JavaScript学习笔记 -- ES6学习(二) let 和const

ES6 中新增了两个命令: let 和const. let命令: let 用于声明变量,和var 类似,但是所声明的变量只在代码块中有效,不存在变量提升,有暂时性死区. 1.只在代码块中有效 和var 命令不同的是,let 声明的变量只在代码块中有效,例如 { let a = 1; var b = 2; } console.log(b); // print 2; console.log(a); // this will cause error. 2. 不存在变量提升 所谓变量提升,就是在同一作用

es6 javascript的Iterator 和 for...of 循环

1 Iterator( 遍历器) 的概念 JavaScript 原有的表示" 集合" 的数据结构, 主要是数组( Array) 和对象( Object), ES6 又添加了 Map 和 Set. 这样就有了四种数据集合, 用户还可以组合使用它们, 定义自己的数据结构, 比如数组的成员是 Map, Map 的成员是对象. 这样就需要一种统一的接口机制, 来处理所有不同的数据结构. 遍历器( Iterator) 就是这样一种机制. 它是一种接口, 为各种不同的数据结构提供统一的访问机制.

轻松学习JavaScript二十九:JavaScript中的this详解

这几天在看很多的JS的代码,多次出现this关键字,有时候表示不理解,就仔细看了这一方面的知识. 在JavaScript语言中,this的定义是:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬 嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它:1包含它的函数.2作为方法被调用时.3所 属的对象.随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那 个对象. this是Javascript语言的一个关键字,它代

轻松学习JavaScript二十三:DOM编程学习之操作表格

一使用HTML标签创建表格: 代码: <span style="font-size:18px;"><table border="1px"width="300px"> <caption>人员表</caption> <thead> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th>