Lodash有这方面的简写吗? (或者可能是Vanilla JS / TypeScript)
var val = obj.value !== undefined : obj.value : '';
请注意var val = obj.value || '';
无效,因为0 | false
是有效值,而是有价值的值。
感谢。
答案 0 :(得分:1)
使用lodash,您可以使用_.get()
。方法3rd可选参数是默认值,如果属性为undefined
:
var obj = { anotherValue: 'not default' };
var val = _.get(obj, 'value', 'default');
var anotherVal = _.get(obj, 'anotherValue', 'default');
console.log('value:', val);
console.log('anotherVal:', anotherVal);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
答案 1 :(得分:0)
如果支持ES6
,则可以使用由JS引擎抽象的解构和默认参数。
function validate( {
value = ''
} = {}) {
// The default parameters are part of the function
// signature, which helps in keeping the function body
// clean without any boilerplate code for default values
console.log('value: ' + value );
}
validate({ value: 100 }); // value: 100
validate({ value: 0 }); // value: 0
validate(); // value:
这里使用了2种模式
{
value = ''
} = {}
跟随等于的那个是默认值,它是对象和花括号内嵌套的预期值,它是解构模式。
答案 2 :(得分:0)
Destructuring允许您设置默认值(ES6功能)。例如:
const {val = ''} = obj
答案 3 :(得分:0)
ES6解构(val = ''
仅当值未定义时):
var {value: val=''} = obj;