zoukankan      html  css  js  c++  java
  • js语法重点

    1:最新的ES6规范引入了新的数据类型Map;var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);m.get('Michael'); // 95

    2:设置超出一行后用...来表示剩余内容

    .myls-1 {
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    }
    3:遍历Array可以采用下标循环,遍历MapSet就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。

    具有iterable类型的集合可以通过新的for ... of循环来遍历。

    for ... of循环是ES6引入的新的语法,请测试你的浏览器是否支持:

    4 :匿名函数

    var abs = function (x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    };可以通过abs来调用
    5:JavaScript还有一个免费赠送的关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array
    function abs() {
        if (arguments.length === 0) {
            return 0;
        }
        var x = arguments[0];
        return x >= 0 ? x : -x;
    }实际上arguments最常用于判断传入参数的个数。
    function foo(a, b, ...rest) {
        console.log('a = ' + a);
        console.log('b = ' + b);
        console.log(rest);
    }rest可以获取多传的参数
    6:JavaScript引擎在行末自动添加分号的机制
    7:
    绑定到对象上的函数称为方法,和普通函数也没啥区别,但是它在内部使用了一个this关键字,这个东东是什么?在一个方法内部,this是一个特殊变量,它始终指向当前对象
    var xiaoming = {
        name: '小明',
        birth: 1990,
        age: function () {
            var y = new Date().getFullYear();
            return y - this.birth;
        }
    };
    xiaoming.age();
    8:高阶函数英文叫Higher-order function。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数
    9:
    function pow(x) {
        return x * x;
    }
    ar arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow);map会遍历所有的元素。通过pow();最后返回一个新的数组

    再看reduce的用法。Array的reduce()把一个函数作用在这个Array[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算
    var arr = [1, 3, 5, 7, 9];
    arr.reduce(function (x, y) {
        return x + y;
    });
    10:filter:filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。map()类似,Arrayfilter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。最后返回一个数组
    var arr = [1, 2, 4, 5, 6, 9, 10, 15];
    var r = arr.filter(function (x) {
        return x % 2 !== 0;
    });
    r; // [1, 5, 9, 15]
    11:sort,arry的sort方法排序字符串会根据ASCII码进行排序,而小写字母a的ASCII码在大写字母之后;默认把所有元素先转换为String再排序。对于两个元素xy,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1
    12:闭包:
    函数作为返回值。例子:
    function sum(arr) {
        return arr.reduce(function (x, y) {
            return x + y;
        });
    }
    
    sum([1, 2, 3, 4, 5]); // 15
    var f = lazy_sum([1, 2, 3, 4, 5]); // function sum()(返回的只是里面的sunm())
    f();返回累加的结果
    
    
     
    
    
     
  • 相关阅读:
    hdu 4027 Can you answer these queries? 线段树
    ZOJ1610 Count the Colors 线段树
    poj 2528 Mayor's posters 离散化 线段树
    hdu 1599 find the mincost route floyd求最小环
    POJ 2686 Traveling by Stagecoach 状压DP
    POJ 1990 MooFest 树状数组
    POJ 2955 Brackets 区间DP
    lightoj 1422 Halloween Costumes 区间DP
    模板 有源汇上下界最小流 loj117
    模板 有源汇上下界最大流 loj116
  • 原文地址:https://www.cnblogs.com/dragonh/p/6257406.html
Copyright © 2011-2022 走看看