funme / coding

loving && coding && living
0 stars 0 forks source link

Javascript questions #60

Open yangmaoHu opened 5 years ago

yangmaoHu commented 5 years ago

javascript-questions

yangmaoHu commented 5 years ago
只有 6 种 falsy 值:

 undefined
 null
 NaN
 0
 '' (empty string)
 false
yangmaoHu commented 5 years ago
JavaScript 只有基本类型和对象

基本类型包括 boolean, null, undefined, bigint, number, string, symbol。
yangmaoHu commented 5 years ago
setInterval(() => console.log('Hi'), 1000)
setInterval 返回一个唯一的 id。此 id 可被用于 clearInterval 函数来取消定时。
yangmaoHu commented 5 years ago
const value = { number: 10 };

const multiply = (x = { ...value }) => {
  console.log(x.number *= 2);
};

multiply();
multiply();
默认参数在调用时才会进行计算,每次调用函数时,都会创建一个新的对象。
我们前两次调用 multiply 函数且不传递值,那么每一次 x 的默认值都为 {number:10} ,
因此打印出该数字的乘积值为20。
yangmaoHu commented 5 years ago
const person = { name: "Lydia" };

Object.defineProperty(person, "age", { value: 21 });

console.log(person);
console.log(Object.keys(person));
使用defineProperty方法给对象添加了一个属性之后,属性默认为 不可枚举(not enumerable).
 Object.keys方法仅返回对象中 可枚举(enumerable) 的属性,因此只剩下了"name".
yangmaoHu commented 5 years ago
const name = "Lydia";
age = 21;

console.log(delete name);
console.log(delete age);
delete操作符返回一个布尔值: true指删除成功,否则返回false. 
但是通过 var, const 或 let 关键字声明的变量无法用 delete 操作符来删除。