首页 > 其他分享 >JS高级知识点大全

JS高级知识点大全

时间:2022-08-13 12:00:22浏览次数:63  
标签:知识点 函数 -- JS 作用域 对象 数组 属性 大全

  • 正则表达式
    • 正则表达是英文RegExp
    • 正则字面量写法/
    • 利用构造函数方式,创建一个正则对象,能否匹配所有单个数字new RegExp('\\d','g')
    • 正则表达式修饰符:忽略大写-->i;全局匹配:->g 
    • 正则方法
      • 查找match
      • 替换replace  
      • 测试:test
    • 正则捕获组
      • 捕获组符号:()
      • 代表1好捕获组的值$1
    • 手机号码正则:/^1[3-9]\d{9}$/
  • JSCORE
    • 早期JS中,函数的变量arguments保存了所有传入的参数
    • 函数的重载是指通过判断参数的数量或类型不同,进而实现不同的效果
    • 浏览器中,网页默认的所有JS属性都存储在window对象里
    • JS中有4种作用域:全局作用域,函数作用域,块级作用域,脚本作用域
  • 闭包产生的根本原因,是函数声明时保存其所在的词法环境,函数提升后,不管在哪里都可以正常运行使用
  • 函数作用域会使用距离其最近的作用域中的变量,这种机制称为作用域链
  • 闭包中的变量存在在函数作用域中,所以不存在全局变量污染
  • 对象类型属于引用类型,每个值对应了一个数字,这种特殊对象类型时数组
  • 一个数组类型,其中存在某些属性的名字是非数字,成为关联数组
  • 普通函数的this,指运行时所在的对象
  • 箭头函数的this,指向生命是所在的作用域的this
  • 构造函数的名称应使用大驼峰命名法,通过new关键词触发
  • 构造函数中如果直接声明方法,则每次构造对象都需要声明新的方法,所以每个构造函数都会自带一个prototype变量来储存方法,其中文名为原型对象
  • 原型链:当调用一个对象的属性时,如果对象本身没有,则到其__proto__变量中查找
  • 替换对象原型,使用Object对象的setPrototypeOf方法实现
  • for...in...会遍历对象及其原型中所有可遍历属性,可以通过Object的keys方法,只读取对象自身属性
  • 严格模式下,JS顶部书写use strict
  • 严格模式中,为避免错误的全局变量声明,要求变量必须声明后才能使用
  • 严格模式中,直接调用函数,函数中的this会指向undefined,来当值错误声明全局变量
  • 严格模式下,报了很多之前不报的错误,是因为取消了静默失败
  • 早期匿名函数自调用是,需要使用arguments的callee变量实现,后被匿名函数自调用所替代
  • 让对对象属性操作方法
    • writable   --  是否可写,属性能否被重新赋值
    • configurable -- 是否可以重新配置
    • value -- 赋值,指定默认值
    • enumerable  --  可遍历
    • get  --  计算属性,不需要()就能触发函数
    • set  --  属性监听 -- 监听属性的赋值
    • defineProperty  --  精确匹配单个对象的属性
    • defineProperties  --  同时匹配多个属性的值
  • 保户对象的3个方法
    • 阻止新增preventExtensions
    • 阻止增删:seal
    • 阻止增删改:freeze
  • 创建一个新的对象,创建同时指定其原型,使用create方法
  • 函调用时,指定其this指向,且剩余参数依次书写,使用call方法
  • 函数调用时,指定其this指向,剩余参数用数组书写,使用apply方法
  • 使用bind函数,就把函数克隆出一个新的函数,指定其this指向和剩余参数,调用后续随意执行
  • 数组的高级方法,通过传递回调函数实现效果
    • every -- 判断数组每个元素都满足
    • some -- 判断至少有一个元素满足
    • filter -- 得到数组中满足条件的元素组成新的数组
    • map -- 把原数组每个元素通过函数处理后,把处理结果形成新的数组
    • forEach -- 遍历数组
    • reduce -- 把数组的内容,归纳总结成位移的值
  • 模板字符串使用``包围,${}数字而JS代码,支持换行
  • const是常量,必须在声明时赋值,赋值后无法修改,因其引用类型
  • 通过for...of...可以快速遍历数组,适用于没有forEach的类数组类型
  • 箭头函数的语法糖,可以实现超级简化,假如方法体只有一行代码,就可以省略{}和return
  • 参数的剩余参数,使用...符号
  • 数组,对象的展开,使用...符号
  • 数组解构:let [a,,b]=[11,22,33]   ---->解构语法:将[11,22,33]中的11和33放到了变量a和b中
  • 面向对象的英文简称:OOP,其三大特征是封装,继承,多态
  • class的静态属性,可以直接通过类型调用,声明静态属性使用static关键词
  • 继承的关键词:extends
  • 子类中书写父类相同的属性,此时子类中想调用父类属性,使用关键词super
  • 通过Promise可以解决回调地狱问题,其中resolve触发then操作,reject触发catch操作
  • Promise三种状态
    • pending 刚声明后
    • fulfilled  resolve调用后
    • rejected reject调用后

标签:知识点,函数,--,JS,作用域,对象,数组,属性,大全
From: https://www.cnblogs.com/wxp00/p/16582740.html

相关文章