记录一些最近工作中遇到的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到底会不会改变原数组
- forEach到底能不能改变原数组的问题。对item进行更改时,对数组元素是基本类型的不会,引用类型改变单一属性会,引用类型改变整个对象不会;通过
arr[index]
来改则两种类型都会 - [参考](https://blog.csdn.net/weixin_44628533/article/details/102495129)
对象属性名带特殊字符/变量
- 可参考ES6扩展 对象扩展中“属性名表达式”的用法
- 对象属性名带特殊字符(比如
-
):- 例子:定义
let obj = { 'SVC-TYD': '1' }
,调用obj['SVC-TYD'] = '2'
- 例子:定义
- 对象属性名带变量/常量:
1
2
3
4
5
6
7const key="age"; // 先定义一个常量key
const xiaoming ={
name: "xiaoming",
[`now${key}`]: 14, // 注意:使用 模板字符串,必须搭配中括号
};
// xiaoming[`now${key}`] = 14 // 或者这样定义
console.log(xiaoming);//{name: "xiaoming", nowage: 14} - **注意:对象属性名包含 常量/变量,使用 模板字符串 时,必须搭配中括号
[``]
**;对象属性名带特殊字符,使用引号时可以不用中括号