es6数组初始化_关于ES6的数组字符串方法

注:ES6的一些新属性会显示语法错误,不过不会影响效果,在Languages里面也可以调;

let:用来定义变量

特点:只能在代码块里面使用,let拥有块级作用域;并且let不允许重复声明;比如:

var a = 12; var a = 5; alert(a);//5;

let a = 12; let a = 5; alert(a);//报错;Identifier 'a' has already been declared

代码块:{}包起来的代码,形成了一个作用域,比如if,for,while,json除外;块级作用域;

var 只有函数作用域;

用处:

自执行函数:

for(let i = 0; i < aBtn.length; i++){

aBtn[i].onclick = function(){

alert(i);//0,1,2

}

}

*** 块级作用域其实就是匿名函数自执行;

const:一般用来定义常量

常量:不允许修改;有些时候定的变量不希望被改变,这个不希望被改变的值就是常量;比如:

let a = 5;

a = 12;

alert(a);//12;

其实希望a的值是5,但是下面有相同的变量名字覆盖了let a的值;这个时候就要用到const;

const一旦被赋值,以后再也无法修改,比如:

const a = 12;

a = 5;

alert(a);//Assignment to constant variable.

const必须给初始值,比如:

const a;

a = 12;

alert(a);//Missing initializer in const declaration;

正确的写法: const a = 12;因为const定义的变量以后再也没法赋值了;

const不能重复声明,比如:

const a = 12;

const a = 5;

alert(a);//Identifier 'a' has already been declared;

用途:防止意外修改变量;

关于字符串连接

之前定义字符串:

var str = '';或者 var str = "";

ES6定义字符串:

var str1 = `elcome;

var str2 = `w`;

ES6连接字符串:${变量名}

var str3 = `${str2}${str1}`; //输出:welcome;

解构赋值

ES6之前:

//var a = 12;

//var b = 5;

//var c = 10;

//alert(a);

ES6:

var [a,b,c] = [12,5,10];//数组的形式定义;

alert(a);//访问某一项

console.log(a);//打印出全部的值;

var {a,b,c} = {a:12,b:5,c:10};//json的形式定义;跟顺序无关;

alert(a);//访问某一项;

console.log(a,b,c);//打印出全部的值;

使用ES6定义的时候注意模式匹配:

模式匹配:左边的样子和右边的一样;

var [a,[b,c],d] = [1,[3,4],5];

console.log(a,b,c,d);

解构赋值默认值的写法:

var {time=12,id=321} = {};

console.log(time,id);//这里的time和id都是默认值;因为等号右边没有赋值;所以需要给默认值,如果不给默认值的的话是undefined;

Array.from():复制一个数组

var arr = [1,2,3,4];

var arr2 = Array.from(arr);

arr2.pop();//删除arr2中的某一项不会影响到arr;

console.log(arr,arr2);

快速复制一个数组: ···

实例1:

var arr = [1,2,3,4];

var arr2 = [...arr1];//引用arr1里面的内容;

arr2.pop();

console.log(arr2);

实例2:

function show(...args){

console.log(args);//1,2,3,4;这里的值也就是arguments的每一个;

args.push(5);//往arguments里面添加一个;

console.log(args);//往arguments里面添加一个5,这在ES6之前是不允许的;

}

show(1,2,3,4);

新增循环 for of

for of 用来遍历(迭代/循环)整个对象;表现类似于for in;

var arr = ['banana','pear','orange','apple'];

for(var i in arr){//i是索引;

console.log(i);//0,1,2,3,索引;

}

for(var i of arr){//i是值;

console.log(i);//banana,pear,orange,apple;

}

for of 循环不能用来循环json,可以循环数组,for of的真正目的是为了循环map对象;实例如下:

var json = {

'a':'12',

'b':'11',

'c':'10',

};

for(var name of json){

console.log(name);//json[Symbol.iterator] is not a function(…)

}

for of 也可以循环数组:

只循环值:for(var name of arr){ console.log(name) };

只循环索引:for(var name of arr.keys()){ console.log(name) };

索引和值都循环: for(var name of arr.entries()){ console.log(name) };

Map对象

和json相似,也是键值对的形式 key-value;Map对象主要是为了和for of循环配合而生。

怎么得到一个Map对象:var oMap = new Map();

设置:oMap.set(name,value);

oMap.set(name,value);//给Map对象设置值;

oMap.set('a','banana');

oMap.set('b','pear');

console.log(oMap);//{"a" => "banana", "b" => "pear"}

获取:oMap.get(name);

oMap.get('a');//banana;

删除:oMap.delete(name);

oMap.delete('a');

循环Map用for of:

var oMap = new Map();

oMap.set('a','banana');

oMap.set('b','pear');

oMap.set('c','orange');

oMap.set('d','apple');

for(var name of oMap){ ==>此种写法的本质就是循环了oMap.entries();

console.log(name);//结果中不仅有name,还有value; a,banana b,pear c,orange d,apple

}==>此种写法等价于:

for(var name in oMap.entries()){

console.log(name);

}

//以key-value的形式取值:

for(var [key,value] of oMap){

console.log(key+':'+vlaue);//a:banana b:pear c:orange d:apple

}

只循环key

for(var key of oMap.keys()){

console.log(key);//a,b,c,d

}

支循环value

for(var val of oMap.values()){

console.log(val);//banana,pear,orange,apple

}

箭头函数

ES6之前:

function show(a,b,c){ return a+b+c }

ES6:=>

注意:

箭头函数里面的this指的是window;

在箭头函数中arguments不能使用了;

ES6:给默认值

var move=()=>{

console.log(obj);//undefined;因为obj未传参;有些时候不希望有undefined;这个时候需要给一个默认值;

}

move();

var move=(obj='参数必须传递')=>{

console.log(obj);//参数必须传递;

}

2016/11/29 16:40:07

ES6之数组扩展方法【一】(相当好用)

form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...

es6 的数组的方法

es6 数组的拓展 数组的类 Array 数组的定义: 1. var arr=[]; 2. var arr=new Array(3) // 3 代表有三个元素 arr[0]=12; arr[1]=24 ...

es6 filter&lpar;&rpar; 数组过滤方法总结

1.创建一个数组,判断数组中是否存在某个值 var newarr = [ { num: , val: 'ceshi', flag: 'aa' }, { num: , val: 'ceshi2', fl ...

es6 filter&lpar;&rpar; 数组过滤方法总结(转载)

1.创建一个数组,判断数组中是否存在某个值 var newarr = [ { num: 1, val: 'ceshi', flag: 'aa' }, { num: 2, val: 'ceshi2', ...

ES6中新增字符串方法,字符串模板

多了两个新方法 startsWith endsWith 返回的是一个Boolean值 let str='git://www.baidu.com/2123123'; if(str.startsWith( ...

es6数组的方法

1.复习的函数 函数是由关键字function声明的,他是一个引用数据类型,是Function的实例,在调用的时候会开辟一个私有空间 2.函数的成员 arguments:null  (是实参构成的数组 ...

ES6使用的一些方法

查找数组中符合条件的所有记录 var list=[ {id:1,name:"张三"}, {id:2,name:"李四"}, {id:3,name:"王 ...

关于ES3、ES5、ES6以及ES7所有数组的方法&lpar;api&rpar;的总结

起因:工作用经常用到操作数组的方法,这里进行一下总结,我尽量以简洁的语言概括每个方法(api)的作用.如果您想快速定位,可以Control+F 然后搜相应的方法即可定位 :) ES3的数组方法 joi ...

ES6中数组的新方法

数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列.

< ...

随机推荐

听歌识曲--用python实现一个音乐检索器

听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...

Mysqldump参数大全

Mysqldump参数大全(参数来源于mysql5.5.19源码)   参数 参数说明 --all-databases  , -A 导出全部数据库. mysqldump  -uroot -p --al ...

USACO Section 3&period;2 香甜的黄油 Sweet Butter

本题是多源最短路问题 但使用弗洛伊德算法会超时 而因为边数目比较少 所以用队列优化后的迪杰斯特拉算法可以通过 #include #include

MVC自学系列之一(MVC入门篇)

MVC是如何适用于ASP.NET中的 自从2002年ASP.NET 1.0版本的首次发布,就知道ASP.NET和Web Forms是同样一回事.ASP.NET由抽象两层类所支持: -->Sy ...

深入剖析Java中的装箱和拆箱(转)

自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱.拆箱相关的问题. 以下是本文的 ...

ibdata1文件--缩小mysql数据库的ibdata1文件

摘要 在MySQL数据库中,如果不指定innodb_file_per_table参数,单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件. mysql ibdata1存放数据,索引等, ...

KoaHub平台基于Node&period;js开发的Koa的rewrite and index support插件代码详情

koa-static-server Static file serving middleware for koa with directory, rewrite and index support k ...

webpack打包The &&num;39&semi;mode&&num;39&semi; option has not been set&comma;错误提示

学习到webpack打包这个工具的时候,总是报错.在这里记录一下...... 我是window系统 当使用npm安装好webpack后,你去查看如果出现一下问题. 出现以上问题,我的做法是 先将web ...

MySql 从SQL文件导入

1. 运行cmd进入命令模式,进入Mysql安装目录下的bin目录(即mysql.exe所在的目录): cd c:\"program Files"\MySQL\"MySQ ...

python学习日记(内置函数补充)

剩余匿名函数 序列 序列——列表和元组相关的:list和tuple 序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr ...


版权声明:本文为weixin_39809540原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。