es6(1)

1.es6简介

    JavaScript的下一代标准,2015.6以后

    浏览器(前端脚本语言)    不是太好(babel => es6 => es5)

    nodejs(后端语言)      不是100%兼容,兼容性比较好

2.变量声明

    let

        1.声明不会提升

        2.具有局部作用域

        3.不能重复声明一个变量

        4.暂时性死区

    const

        用来声明一个常量,定义的变量不能再改变

        上面let所有对的特性,都具有

3.解构

    对象的解构,通过大括号

        let {a,b,c,d = 3} = {a:1,b:2}

        a   //1

        b   //2

        c   //undefined

        d   //3  默认值

        解构不成功,会获取到一个undefined值

        给默认值,只有当这个值为 === 的undefined值时,给的默认值才有效

    数组的解构,通过中括号解构

        let [a,b,c,d,e = 4] = [1,2,3]

        a //1

        b //2

        c //3  

        d //undefined

        e //4  默认值

        解构不成功,会获取到一个undefined值

        给默认值,只有当这个值为 === 的undefined值时,给的默认值才有效

4.字符串拓展

    遍历 for of

    let str = 'hello world';

    //for of => 对字符串做遍历操作

    for(let s of str){
        console.log(s);  //h w l l o  w o r l d
    }

    实例方法

        includes():返回布尔值,表示是否找到了参数字符串。
        
        startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
        
        endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

        repeat() 重复

        padStart()  头部补全  第一个参数:长度;第二参数:补全的字符串

        padEnd()    尾部补全  第一个参数:长度;第二参数:补全的字符串

        trim()      去除空格  

        trimStart() 去除开始
        
        trimEnd()   去除结束

        replace()   替换

        replaceAll() 全部替换

5.数值拓展

        Number.isFinite()  检测一个数值是否有限
        
        Number.isNaN()      检测一个值是否为NAN

        Number.parseInt()
        
        Number.parseFloat()

        Number.isInteger()  用来判断一个数值是否为整数。

6.对象拓展

    对象简写

    对象的扩展运算符

        解构

        扩展运算符 ...

    Object静态方法扩展

        Object.is()  比较两个值是否相等

        Object.assign()  合并对象

        Object.setPrototypeOf()  为某个对象设置原型

        Object.getPrototypeOf()  获取某个对象的原型

        Object.keys()       该方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。

        Object.values()     该方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。

        Object.entries()    该方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组。

        Object.fromEntries() 该方法是entries的逆操作,用于将一个键值对数组转为对象。

7.数组拓展
        
        数组的解构

        扩展运算符  ...

        静态方法扩展

            Array.from()    用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象

            Array.of()      用于将一组值,转换为数组。

        实例方法拓展

            find()      找出第一个符合条件的数组成员
            
            findIndex()  返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

            fill()        使用给定值,填充一个数组。

            entries(),keys() 和 values()
            
            它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

            includes()  返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。
            
            flat()

            该方法用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。 如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。

            flatMap()
            
            该方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。 该方法只能展开一层数组。

8.函数拓展

    函数参数的默认值

    function add(a,b){
        return a+b
    }

    add(1) //NaN

    function add(a,b=10){
        return a+b
    }

    add(1)     //11

    参数的解构

    function add({name,age}){
        console.log(a+b)
    }

    let obj = {
        naem:'terry',
        age:12,
        job:'IT',
        sayName(){
            console.log(this.name)
        }
    }

    add(obj)

    rest参数

    将一组值放到一个数组中

    function test(...values){
        values    //[1,2,3,4,5]
    }

    test(1,2,3,4,5)


    箭头函数

    (a,b)=>{
        console.log('我是一个箭头函数)
    }


    a=>{
        console.log()
    }

    箭头函数的this指向

        指向包含他的外部函数

        let arr = [1, 2, 3, 4, 5]

        arr.forEach(item=>{

        })

    obj.add()    //obj

    add()        //全局对象 window global

    add.call(obj1,参数列表) //obj1

    add.apply(obj1,[参数数组])       //obj1

    add()   

    add.call(obj,参数列表)   

    add.apply(obj,[参数数组])

    let obj = new Object()


9.babel

    将es6代码转化为es5,仅仅只是代码的转化,模块化不会合并

    let arr = [1,2,3]

    arr.forEach(()=>{

    })

    var arr = [1,2,3]

    arr.forEach(function(){

    })


10.模块化(commonjs) nodejs采用的commonjs标准

    可以将每一个js文件或者文件夹当作一个模块

    index.html    //10行

        <script src='./index.js'></script>

    index.js   100000000000行

    1.导出模块

    module

        id    唯一标示

        filename    路径+文件名

        paths       路径

        exports     对外暴露的接口 module.exports = {name:'tom',arr:[],age:12,test:function(){}}

    module.exports.obj = obj   单个导出

    module.exports = {         导出列表
        obj,
        a
    }

    2.导入模块

    let obj = require('./app01.js')   //路径

    let obj = require('app01')        //模块名称

    paths  

    module

        node_modules
        
        npm init  => package.json(模块核心配置文件)

        index.js  let qs = require('qs) npm install qs --save

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值