zoukankan      html  css  js  c++  java
  • 浅谈ECMAScript

    JS的三大组成部分

      BOM DOM  ECMAScript

    ES5

    严格模式
     在全局作用域前加一个 "use strict"
     严格模式带来了那些好处:
      1、增加了更多的报错的场合 使代码编译更加规范
      2、为未来的新版本做好了铺垫
      3.提高编译器效率,增加运行速度。

     体现:
      1、声明变量必须用var
      2、不允许删除变量
      3、this的指向在全局中指向window,不然则是 undefined

      4.不能自调用

    ES5新增的常见方法

      数组中:

      indexOf  输入val 判断第一个出现字符是否存在,存在返回下标,不存在返回-1。 第二个参数是从第几个开始的

      lastIndexOf  输入val 判断最后出现的字符是否存在,存在返回下标,不存在返回-1。 第二个参数是从第几个开始

      reduce 参数是一个回调函数 回调参一:起始值   参数二:最后一个val  参数三:最后一个I值  参数四:整条数据

        参一+参二==总val之和     参一+参二==总下标之和   这两个比较特殊 

      以下三种: 参数是一个回调函数  回调参数一:val   参数二:index  参数三:整条数据

      map   类似循环  有返回值

      filter 类似于筛选判断  循环中 返回布尔值进行判断 输出数据

      forEach   类似于循环遍历  没有返回值

    ES6新增方法

     改变this的指向方法 

      1.创建一个空间,把当前空间数据放在另一个指向空间中。

      2.call  apply  bind

     声明变量不在用var  

      声明变量一般用let const  

      let:
        1、在ES6里面变量不允许被重复定义
        2、ES6里面let定义的参数不会被声明提升
        3、let定义变量的时候可以将值保留在快级作用域内
        let只能在当前作用域下使用
        因此可以保留作用域内的值
        还可以用闭包保留
        只要在作用域内被let声明 外面的值将不可以访问(即使之后不声明直接写)
      const: 常量
        1、在ES6里面变量不允许被重复定义
        2、常量不允许被修改
        3、ES6里面const定义的参数不会被声明提升
      一经声明无法替换
        var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
        let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
        const用来定义常量,使用时必须初始化(即必须赋值 不然报错),只能在块作用域里访问,而且不能修改。

      

      字符串: 

        传递参数的时候 ${参数} 也是支持js语法
        includes:判断字符串中是否存在某个字符串 存在返回true 不存在false
        str.includes(字符)
        startsWith()判断首字符是不是想要的字符
        endsWith()判断尾字符是不是想要的字符
        repeat(n):n代表重复的次数'

      数组:

        Array.of():将一组数值转换为数组
        Array.from():将伪数组转换为数组
        for of: i代表数组内的数据
        el.find() 查询到了了符合条件的某一个 终止执行 返回val

        el.findIndex() 查询到了了符合条件的某一个 终止执行 返回Index

      解构赋值:

    var arr2 = [1,2,3,[4,5,[6,7],[8,[9], 10], [11, 12]]];
    //取数字7
    var [a,b,c,[d,e,[f,g]]] = arr2;
    console.log(g);

        数组解构按照下标一一对应进行解构

        对象解构按照key对象进行解构

      扩展运算符:(接触外部的包围 依次输出)

    var array1 = [1,2,3,4,5];
    console.log(...array1);
    //1 2 3 4 5
    
    var array1 = [1,2,3,4,5];
    console.log([...array1]);
    //[1,2,3,4,5]

      

      函数中:

        ES2016 做了一点修改,规定只要函数参数使用了默认值、解构赋值、或者扩展运算符,那么函数内部就不能显式设定为严格模式,否则会报错。

        箭头函数 this的指向 就是定义时所在的对象,而不是使用时所在的对象

        表现方式:如果有多个参数数 执行语句也为多个()=>{}

             如果单个参数  执行语句就为返回值  item=>val

        rest:变现方式  (..reset)=>{}   可以用来省略参数

      对象:

        Object.keys()可以进行属性遍历

      待续。。。。。。。。

  • 相关阅读:
    数据结构与算法之递归与调用栈
    Linux 压缩命令之tar和zip
    算法的时间复杂度—大O表示法
    Linux三大文本处理工具之awk
    Linux 排序命令之 sort, wc, uniq
    oracle性能优化之索引
    Linux三大文本处理工具之sed命令
    Linux三大文本处理工具之grep命令
    linux查看端口
    linux查看mac地址
  • 原文地址:https://www.cnblogs.com/lianqing/p/9246318.html
Copyright © 2011-2022 走看看