LoginSignup
0
0

More than 5 years have passed since last update.

Good to know: JavaScript

Posted at

default value for undefined property in Object

Behavior when there is no property

var object = {
  value: 'hoge',
};
console.log(object.key);
// key is not exist, therefore will be undefined
undefined

in js undefined treat as false.

var object = {
  value: 'hoge',
}
var defaultObject = {
  value: 'key' in object ? object.key : 'defaultValue',
};
// or
var defaultObject2 = {
  value: object.hasOwnProperty('key') ? object.key : 'defaultValue',
};
console.log(defaultObject);
// object.key is not exist, therefore will be `defaultValue`
'defaultValue'
'defaultValue'
var object = {
  value: 'hoge',
};
var defaultObject = {
  key: 'defaultValue',
};
$.extend(defaultObject, object);

delete value by key in obj

var obj = {
  keyA: 'a',
  keyB: 'b',
  keyC: 'c',
};

delete arr['keyB'];
// or
delete arr.keyB;
console.log(obj);
Object {keyA: "a", keyC: "c"}

Object.assign

When merge objects with same properties, right object is higher priority.

var o1 = { a: 1, b: 1, c: 1 };
var o2 = { b: 2, c: 2 };
var o3 = { c: 3 };

var obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }

|| and && in Javascript

In Javascript || and && are not exactly same with boolean operator.

case 1. || means left value is true return left value.
case 2. || means left value is false return right value.
case 3. && means left value is ture return right value.
case 4. && means left value is false return left value.

// case 1
var x = 'a' || 'b'; // x -> 'a'

// case 2
var x = '' || 'a'; // x -> 'a'

// case 3
var y = 'a' && 'b'; // y -> 'b'

// case 4
var y = '' && 'a'; // y -> ''

true and false in Javascript

value type results
{} object true
'hoge' string true
'' string false
1 number true
-1 number true
0 number false
[] object true
true boolean true
false boolean false
undefined undefined false
null null false

Good to know: jq

Load jquery on Chrome console

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ... give time for script to load, then type.
jQuery.noConflict();

jquery selector

// select element by attr
$('[data-react-id]=""')
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0