• js的es5


    ES5

    ECMAScript 第五个版本, 发布与2009年

    严格模式

    • 在脚本顶部书写 ‘use strict’ 字符串, 则后续代码都会运行在严格模式下

    • 变量必须声明后才能使用

      • 防止变量名书写错误导致错误的全局变量生成, 导致污染
    • 函数的this如果指向window, 现在变为 undefined

      • 防止构造函数忘记写new, 导致this指向window造成全局变量污染
    • 取消静默失败

      • 以前不报错的失败, 现在会爆红
    • 取消函数的callee

      • arguments 的 callee 属性代表当前函数, 在匿名函数递归的场景中使用较多, 但是消耗资源多
      • 现在推荐使用 命名函数递归 代替 匿名函数递归

    函数

    • bind

      • 为函数绑定执行所在的对象和相关参数, 返回一个新的函数, 等待后续执行
      • 场景: 定时器 等延时执行的场景
    • call

      • 立即触发函数, 把函数放在指定对象中执行, 并传入其他参数
      • 场景: 执行时临时替换函数的this
    • apply

      • 立即触发函数, 把函数放在指定对象中执行, 其他参数用数组传入
      • 场景: 把函数的参数改为数组方式传入

    数组的高阶函数

    • every

      • 每个元素都符合条件
    • some

      • 至少存在一个符合条件的元素
    • map

      • 映射, 把数组的每个元素进行处理后, 返回值组成新的数组
    • filter

      • 把符合条件的元素过滤出来, 形成新的数组
    • forEach

      • 单纯的数组遍历
    • reduce

      • 合并数组的每个元素, 最终得到一个值

    对象方法

    • Object.defineProperty

      • 修改旧属性, 配置详细设置

        • 用字面量方式声明的属性, 默认的所有配置都是真
      • 添加新属性, 配置详细设置

        • 所有配置默认都是假
      • 配置:

        • writable

          • 可写
        • enumerable

          • 可遍历
        • configurable

          • 可重新配置
        • value

          • 默认值
        • get

          • 计算属性使用
          • 读取属性时触发
        • set

          • 赋值监听时使用
          • 向属性赋值时触发
    • Object.defineProperties(对象, {属性名: 配置项})

      • 配置多个属性
    • Object.preventExtensions

      • 不允许新增属性
    • Object.seal

      • 不允许增删属性
    • Object.freeze

      • 不允许增删改属性
  • 相关阅读:
    应用软件安全保证措施方案书
    java-php-python-springboot携手助学助学交流平台计算机毕业设计
    数据结构第一章:部分答案
    当try_files遇上gateway是如何产生火花的
    ABB 控制柜
    stable diffusion在建筑行业应用
    chattr:修改文件的特殊属性
    【案例实战】分布式应用下登录检验解决方案(JWT)
    一文入门Web网站安全测试
    JAVA坝上长尾鸡养殖管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/hdj0511/article/details/126619088