关于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

时间: 2025-01-03 20:22:18

关于ES6的数组字符串方法的相关文章

es6数组的方法

1.复习的函数 函数是由关键字function声明的,他是一个引用数据类型,是Function的实例,在调用的时候会开辟一个私有空间 2.函数的成员 arguments:null  (是实参构成的数组集合) caller:null(是这个函数的调用者,函数在A个函数内调用,那么A就是这个函数的调用者,在window下caller是null) 案例: function fn(){ console.log(fn.caller) } function f(){ fn(23,56) } f()     

ES6中数组的新方法

数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. <body> <div></div> <div></div> <div></div> <div></div> </body> <script type="text/javascript"> c

Es6中如何使用splic,delete等数组删除方法

Es6中如何使用splic,delete等数组删除方法 1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   /

js字符串方法、数组方法整理

push 向数组末尾添加一项 返回值为数组的长度: pop 删除数组最后一项: unshift 向数组开头增加一项: shift 删除数组第一项: splice 删除数组中的值:1 splice(n,m)从n开始 删除m个:返回下标n~m : 2 splic(n) 从n开始删除到末尾: 3 splice(n,m,x)从n开始删除m个,用x替换: 4 splice(n,0,m) 把x增加到n前面: 5 splice(arr.length,0,n) 向末尾加n 数组的截取和拼接 slice(n,m)

javascript---关于字符串和数组的方法

在学习javascript过程中,遇到过很多关于数组和字符串的一些操作.之前也总结了不少方法,可是一遇到自己用的时候,就忘了.不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次总结一下: 首先是字符串的方法: 1.字符方法: charAt()---功能:返回指定位置的字符:语法:string.charAt(index) index超出范围返回空字符串 1 var str = 'Hello'; 2 var n = str.charAt(1); 3 console.log(n

JavaScript中数组的方法和字符串方法总结

数组是首先的一个对象, 可以通过Array构造器创建一个数组,数组方法总结如下 cacat()  链接两个数组 join()  将数组链接成字符串 pop() 删除最后一个元素  shift()  删除第一个元素 push() 末尾增加一个或者多个元素 返回新的长度,可以增加多个参数作为数组的新元素 unshift() 删除第一个元素或者更多的元素返回新的长度 slice() 返回某个指定的元素  返回值是选定的元素 ,参数是数组的索引值 改变数组个数 sort() 可以对数组元素进行排序, 默

JavaScript易混淆知识点小回顾--数组方法与字符串方法;

数组属性: arr.length;查看数组的长度 arr.Pop;删除数组最后一个元素; 数组的方法: arr.push();添加到数组末端; arr.shift();删除数组的第一个元素; arr.unshift();在数组最前面添加一个元素; arr.jojn();将得到的所有元素转换成字符串; arr.reverse();颠倒数组元素的位置; arr.slice(i,j);获取从i到j的数组,不改变原数组; i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个字符,j为结束的

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数

ES6笔记-字符串方法

字符串检索方法,indexOf(searchValue,fromIndex)//参数1必需,检索查询的字符串或者值,参数2选题,规定检索的起始位置,不设置默认从0开始 indexOf()方法返回检索字符串出现的位置,如果没有出现检索的字符串或者值,返回-1 'Hello Tom'.indexOf('o',2)//4,出现'Hello Tom'.indexOf('e',3)//-1,未出现 ES6新增加字符串检索方法 includes():返回布尔值,表示是否找到了参数字符串. startsWit