注: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的数组字符串方法的更多相关文章

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

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

  2. es6 的数组的方法

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

  3. es6 filter() 数组过滤方法总结

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

  4. es6 filter() 数组过滤方法总结(转载)

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

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

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

  6. es6数组的方法

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

  7. ES6使用的一些方法

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

  8. 前端面试之JavaScript中数组的方法!【残缺版!!】

    前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...

  9. 关于ES3、ES5、ES6以及ES7所有数组的方法(api)的总结

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

随机推荐

  1. register_chrdev_region/alloc_chrdev_region和cdev注册字符设备驱动

    内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region().alloc_chrdev_region() 和 register_chrdev(). (1 ...

  2. Date get period

    /** * get period for last year * @param time * @return */ public static DatePeriodDTO getLastYear(lo ...

  3. linux之各个文件夹作用

    /bin 二进制可执行命令  /dev 设备特殊文件  /etc 系统管理和配置文件  /etc/rc.d 启动的配置文件和脚本  /home 用户主目录的基点,比如用户user的主目录就是/home ...

  4. WPA破解原理简要——无线网络破解续

    一.破解密码的基础 关于密码的破解我再重复一次好了.密码破解就两大类方法.一是字典解密,而是暴力解密. 暴力解密就是采用穷举的方法——你密码是怎么组成的呢?无非就是数字.字母.符号,暴力解密就是采用一 ...

  5. 原创:cellmap 基站查询 for android

    cellmap for android 3.6.8.7.9.8 更新日期:2016年12月30日 特别声明:本软件不能进行手机定位,不能对手机号码定位,谨防被骗. 下载地址: cellmap3.6.8 ...

  6. [Spring MVC] - 地址路由使用(一)

    常用的一些Spring MVC的路由写法以及参数传递方式. 参考引用: http://docs.spring.io/spring/docs/3.0.x/spring-framework-referen ...

  7. int和NSInteger区别

    NSInteger会自动根据操作系统的位数(32或者64位)返回最大的类型 查到c语言中,int和long的字节数是和操作系统指针所占位数相等. 但c语言中说,long的长度永远大于或等于int ob ...

  8. Bootstrap整体架构

    大多数Bootstrap的使用者都认为Bootstrap只是提供了CSS组件和JavaScript插件,其实CSS组件和JavaScript插件只是Bootstrap框架的表现形式而已,他们都是构建在 ...

  9. V$RMAN_BACKUP_JOB_DETAILS

    V$RMAN_BACKUP_JOB_DETAILS展示了rman备份的相关细节.比如,rman备份持续时间.rman备份的执行次数.每一次rman备份工作的状态(failed or completed ...

  10. 鸟哥的Linux私房菜第零章

    CPU从主存中读取数据通过微指令集控制和进行计算.主存储器内的数据则是从输入单元所传输进来,而CPU处理完毕的数据也必须要先写回主存储器中, 最后数据才从主存储器传输到输出单元.内存又称主存,是CPU ...