js使用过程中遇到的问题集合

记录一些最近工作中遇到的js相关问题

不想走完整个循环可用Array.every()

  • 菜鸟教程
  • 不想走完整个循环的可以试试every,走到false就会结束循环,而且返回的Boolean方便直接做判断条件决定是否弹出提示

export与export default

  • 总结:export导出的是对象,引入时要解构;export default是直接导出,可直接import。
  • js文件中,函数很少情况是export default => 直接引用。基本上都是把函数写表达式方式定义const a = function(){...}),作为变量汇集成对象export出去,import引用时要用{}(import {a, ...} from 'xxx.js')。

外部script引入的报错

  • js引入位置删除还报错时,有可能是缓存,重启服务即可

forEach到底会不会改变原数组


对象属性名带特殊字符/变量

  • 可参考ES6扩展 对象扩展中“属性名表达式”的用法
  • 对象属性名带特殊字符(比如-):
    • 例子:定义let obj = { 'SVC-TYD': '1' },调用obj['SVC-TYD'] = '2'
  • 对象属性名带变量/常量
    1
    2
    3
    4
    5
    6
    7
    const key="age"; // 先定义一个常量key
    const xiaoming ={
    name: "xiaoming",
    [`now${key}`]: 14, // 注意:使用 模板字符串,必须搭配中括号
    };
    // xiaoming[`now${key}`] = 14 // 或者这样定义
    console.log(xiaoming);//{name: "xiaoming", nowage: 14}
  • **注意:对象属性名包含 常量/变量,使用 模板字符串 时,必须搭配中括号[``]**;对象属性名带特殊字符,使用引号时可以不用中括号

,