比如说
let b = [];
a = { k:'1' };
b.push({ name:a.k });
console.log(b); // => ok
// 但是
b.push({ name:a.c });
console.log(b); // => nodejs 却报错,而不是直接显示 undefined
比如说
let b = [];
a = { k:'1' };
b.push({ name:a.k });
console.log(b); // => ok
// 但是
b.push({ name:a.c });
console.log(b); // => nodejs 却报错,而不是直接显示 undefined
//不在严格模式下,会添加undefined 到数组
//在严格模式下,会报语法错误
'use strict'
let a = [];
b = {
k : 12
}
// b.c 是 undefined
a.push(b.c); // 这里会报语法有错误
尝试代码没有问题的,我猜是因为题主把两段代码写在一起了,但是
那里是两段代码的分隔。
在 Node 下,会报 ReferenceError
,因为 Node 已经支持 ES2015 和 ES2017,是按严格模式来运行的。
要想不报错……用 try ... catch
试试
try {
b.push({ name: a.c });
console.log(b);
} catch (e) {
// 不写这句话就啥消息都没有
console.log("[ERROR]", e.message);
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
我这里是没有问题的