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();返回累加的结果
    
    
     
    
    
     
  • 相关阅读:
    defence系列的网游不错,我信网游能挣钱了,做得太好了
    关于Debug和Release之本质区别的讨论
    phpmyadmin设置密码,不用登录直接进入
    北京可以备案什么域名
    如何将本地文件复制到远程服务器听语音
    win7 64位wamp2.5无法启动MSVCR110.DLL丢失听语音
    最大连接数:60 iops:150 什么概念?
    about diigo
    Install Microsoft fonts in Ubuntu Linux
    a crawler base on libevent
  • 原文地址:https://www.cnblogs.com/dragonh/p/6257406.html
Copyright © 2011-2022 走看看