作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我创建的 push
util(创建新数组)创建了此测试:
export const push = (array, value) => [...array, value]
describe('push', () => {
const a = ['1']
it('creates copy', () => {
const b = a
b.push('2')
expect(a).toBe(b)
})
it('creates clone', () => {
const b = a
console.log(a)
push(b, '2')
expect(a).not.toBe(b)
})
})
我惊讶地发现 console.log(a)
产生:[ '1', '2' ]
。我认为 b.push('2')
不会离开其周围的 it
。
如何让it
里面的代码只适用于作用域?
最佳答案
何时 b
指的是a
在'creates copy'
然后你将 2 插入它,你正在修改 a
(因为它们都指的是同一个地方,并且 const 不会阻止像推送这样的变异操作)。
当第二种情况,即 'creates clone'
运行时,它使用相同的 a
,即您修改过的那个,因此将记录 [ '1', '2' ]
.
关于javascript - 如何在 Jest 中设置变量作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771594/
我是一名优秀的程序员,十分优秀!