资讯专栏INFORMATION COLUMN

javescript经验文档(es6/es2017篇)

fyber / 2942人阅读

摘要:迭代器西红柿孙双双结果西红柿孙双双生成器西红柿炒蛋结果西红柿孙双双模版字符串普通字符串多行字符串字符串中嵌入变量函数的参数默认值之前,当未传入参数时,操作符当被用于迭代器中时,它是一个操作符当被用于函数传参时,是一个操作符当被用于函

迭代器 - Iterators
{
    "use strict"
    function chef(foods){
        let i = 0;
        return {
            next(){
                let done = (i >= foods.length);
                let value = !done ? foods[i++]:undefined;

                return{
                    value:value,
                    done:done
                }
            }
        }
    }
    let wanghao = chef(["西红柿","孙双双"]);
    console.log(wanghao.next());
    console.log(wanghao.next());
    console.log(wanghao.next());
}

结果:
{value: "西红柿", done: false}
{value: "孙双双", done: false}
{value: undefined, done: true}

生成器 - Generators
{
    "use strict"
    function* chef(){
        yield "西红柿";
        yield "炒蛋";
    }
    let wanghao = chef();
    console.log(wanghao.next());
    console.log(wanghao.next());
    console.log(wanghao.next());
}

结果:
{value: "西红柿", done: false}
{value: "孙双双", done: false}
{value: undefined, done: true}

模版字符串 - ``
{
    // 普通字符串
    let str = `In JavaScript "
" is a line-feed.`;
    console.log(str);
     
    // 多行字符串
    let str2 = `In JavaScript this is
        not legal.`;
    console.log(str2);
     
    // 字符串中嵌入变量
    let name = "liushi";
    window.location.href = `http://www.baidu.com?name=${name}`;
}
函数的参数默认值
// ES6之前,当未传入参数时,text = "default";
function printText(text) {
    text = text || "default";
    console.log(text);
}

// ES6;
function printText(text = "default") {
    console.log(text);
}
Spread / Rest 操作符

当被用于迭代器中时,它是一个 Spread 操作符:

function foo(x,y,z) {
  console.log(x,y,z);
} 
let arr = [1,2,3];
foo(...arr); // 1 2 3

当被用于函数传参时,是一个 Rest 操作符:当被用于函数传参时,是一个 Rest 操作符:

function foo(...args) {
  console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
for...of 和 for...in
{
    //返回值
    let letters = ["a", "b", "c"];
    letters.size = 3;
    for (let letter of letters) {
      console.log(letter);
    }
    // 结果: a, b, c
    
    //返回键,es6
    let stus = ["Sam", "22", "男"];
    stus.size = 3;
    for (let stu in stus) {
      console.log(stu);
    }
    // 结果: 0,1,2,size
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96990.html

相关文章

  • javescript经验文档(循环语句

    摘要:循环语句一般循环方法注意在使用遍历数组之前一定要判断数组是否已经定义用的方法遍历数组对对象操作为对象的键用的方法总结来说总是得到对像的或数组字符串的下标而和一样是直接得到值。所以,不能对象用循环循环 循环语句 一般for循环 { let array = [1,2,3,4,5,6,7]; for (let i = 0; i < array.length; i++) ...

    BearyChat 评论0 收藏0
  • javescript经验文档(Object

    摘要:判断自身属性是否存在方法返回一个布尔值,判断对象是否包含特定的自身非继承属性。 判断自身属性是否存在 hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。 { let obj = {a:1,b:2}; obj.hasOwnProperty(a) } 返回结果:true

    developerworks 评论0 收藏0
  • javescript经验文档(技巧

    摘要:与用来赋值的奇怪用法如果存在,反之则相当于注意强烈要求注意一下,如果的值为,那么就要详细的考虑一下,因为千万不要玩脱了与判断奇偶隐式返回值注意一哈,这里是括号 && 与 || 用来赋值的奇怪用法 o_0 let a = x || y; // 如果 x 存在, a = x,反之则 a = y;相当于 if(x){ let a = x; ...

    jzman 评论0 收藏0
  • javescript经验文档(Array

    摘要:返回结果注意方法返回的是数组长度,如上示例,返回值为方法把一个或多个参数插入到数组头部,返回数组长度。整数,规定添加删除项目的位置,使用负数可从数组结尾处规定位置。返回值类型描述包含被删除项目的新数组,如果有的话。 数组去重 ...set(array)去重 { let array = [aa,12,aa,16,12,ab]; function dedupe(array)...

    XFLY 评论0 收藏0
  • 前端每周清单半年盘点之 JavaScript

    摘要:前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点分为新闻热点开发教程工程实践深度阅读开源项目巅峰人生等栏目。背后的故事本文是对于年之间世界发生的大事件的详细介绍,阐述了从提出到角力到流产的前世今生。 前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎...

    Vixb 评论0 收藏0

发表评论

0条评论

fyber

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<