1. 对象属性简写  
 1.1 基本语法  
const  name =  'John' ; 
const  age =  25 ; 
const  user =  { name :  name, age :  age
} ; 
const  user =  { name, age
} ; 
  
 1.2 实际应用场景  
function  createUser ( name,  age,  email )  { return  { name, age, email} ; 
} 
function  useState ( initialState )  { const  state =  initialState; const  setState  =  ( newState )  =>  { } ; return  {  state,  setState } ; 
} 
const  actions =  { increment, decrement, reset
} ; 
export  default  actions; 
  
 2. 对象属性表达式  
 2.1 基本语法  
const  prefix =  'user' ; 
const  id =  1 ; 
const  user =  { [ ` ${ prefix} _ ${ id} ` ] :  'John' , [ ` ${ prefix} Email ` ] :  'john@example.com' 
} ; console. log ( user. user_1) ;  
console. log ( user. userEmail) ;  
  
 2.2 实际应用场景  
function  createStyles ( theme )  { return  { [ ` button_ ${ theme} ` ] :  { backgroundColor :  theme ===  'dark'  ?  '#000'  :  '#fff' , color :  theme ===  'dark'  ?  '#fff'  :  '#000' } } ; 
} 
const  actionTypes =  { [ ` FETCH_USER_ ${ status} ` ] :  ` FETCH_USER_ ${ status} ` , [ ` UPDATE_USER_ ${ status} ` ] :  ` UPDATE_USER_ ${ status} `  
} ; 
const  i18n =  { [ ` greeting_ ${ language} ` ] :  '你好' , [ ` farewell_ ${ language} ` ] :  '再见' 
} ; 
  
 3. 扩展运算符 (…)  
 3.1 对象展开  
const  base =  {  a :  1 ,  b :  2  } ; 
const  extended =  {  ... base,  c :  3  } ; 
console. log ( extended) ;  
const  defaults =  {  theme :  'light' ,  language :  'en'  } ; 
const  userPreferences =  {  theme :  'dark'  } ; 
const  finalPreferences =  {  ... defaults,  ... userPreferences } ; 
console. log ( finalPreferences) ;  
  
 3.2 实际应用场景  
function  Button ( {  children,  ... props } )  { return  ( < button { ... props} > { children} < / button> ) ; 
} 
const  baseConfig =  { api :  'https://api.example.com' , timeout :  5000 
} ; const  devConfig =  { ... baseConfig, api :  'http://localhost:3000' 
} ; 
setState ( prevState  =>  ( { ... prevState, loading :  false , data :  newData
} ) ) ; 
  
 4. Object.assign()  
 4.1 基本用法  
const  target =  {  a :  1  } ; 
const  source1 =  {  b :  2  } ; 
const  source2 =  {  c :  3  } ; const  result =  Object. assign ( target,  source1,  source2) ; 
console. log ( result) ;  
console. log ( target) ;  
  
 4.2 实际应用场景  
const  original =  {  a :  1 ,  b :  {  c :  2  }  } ; 
const  copy =  Object. assign ( { } ,  original) ; 
function  createConfig ( options )  { const  defaults =  { debug :  false , timeout :  5000 , retries :  3 } ; return  Object. assign ( { } ,  defaults,  options) ; 
} 
const  state =  {  user :  {  name :  'John'  } ,  theme :  'light'  } ; 
const  newState =  Object. assign ( { } ,  state,  {  theme :  'dark'  } ) ; 
  
 5. Object.is()  
 5.1 基本用法  
console. log ( Object. is ( 5 ,  5 ) ) ;  
console. log ( Object. is ( 5 ,  '5' ) ) ;  
console. log ( Object. is ( NaN ,  NaN ) ) ;  
console. log ( Object. is ( + 0 ,  - 0 ) ) ;  
console. log ( NaN  ===  NaN ) ;  
console. log ( Object. is ( NaN ,  NaN ) ) ;  console. log ( + 0  ===  - 0 ) ;  
console. log ( Object. is ( + 0 ,  - 0 ) ) ;  
  
 5.2 实际应用场景  
function  areSameValues ( x,  y )  { return  Object. is ( x,  y) ; 
} 
function  isReallyNaN ( x )  { return  Object. is ( x,  NaN ) ; 
} 
function  shouldComponentUpdate ( nextProps )  { return  ! Object. is ( this . props. value,  nextProps. value) ; 
} 
  
 6. 最佳实践  
 6.1 选择合适的方法  
const  merged =  {  ... obj1,  ... obj2 } ; 
const  deepCopy =  JSON . parse ( JSON . stringify ( obj) ) ; 
if  ( Object. is ( value1,  value2) )  { 
} 
  
 6.2 性能考虑  
const  obj =  { ... baseObj, ... middlewareObj, ... finalObj
} ; 
const  result =  Object. assign ( { } ,  baseConfig, environmentConfig, userConfig
) ;