比如说
let b = [];
a = { k:'1' };
b.push({ name:a.k });
console.log(b); // => ok
// 但是
b.push({ name:a.c });
console.log(b); // => nodejs 却报错,而不是直接显示 undefined
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我这里是没有问题的
//不在严格模式下,会添加undefined 到数组
//在严格模式下,会报语法错误
'use strict'
let a = [];
b = {
k : 12
}
// b.c 是 undefined
a.push(b.c); // 这里会报语法有错误
尝试代码没有问题的,我猜是因为题主把两段代码写在一起了,
但是
那里是两段代码的分隔。在 Node 下,会报
ReferenceError
,因为 Node 已经支持 ES2015 和 ES2017,是按严格模式来运行的。要想不报错……用
try ... catch
试试try...catch 或者先判断?看了楼下评论,试了下,我也没有问题 ... node 7.7.4
看来还是要实践,除了自己谁都不能轻信 ...