他山之石,可以攻玉——新知识点1

2018-12-13  本文已影响0人  meteornnnight

1. null与undefined的区别:

let x;
alert(x); //(undefined)
let x=null;
alert(x);//(null)

summary:

  1. 用undefined来表示一个变量declared但是unassigned的状态;
  2. 用null来表示一个变量是空的, 变量名可以直观地理解成装data的box, null就表示这个box是empty/nothing。

2. 在字符串中插入variable/expression:

let name="john";
let greetings=`Good morning, ${name}, it is a nice day!`;
console.log(greetings);

3. 把非Number转换成Number的3个函数: Number(),parseInt(),parseFloat()

input output
true 1
false 0
null 0
undefined NaN

当input是字符串的时候,情况会变得有一点点复杂,首先Number()会忽略leading and trailing whitespace, 也会忽略leading zero,再处理剩下的字符串,如果remaining string存在除了数字和小数点以外的字符,return NaN.
由于Number在处理字符串时十分不合理,当输入是字符串的时候,往往采用parseInt()和parseFloat().
Tip: 当'+'作为一元操作符(unary operator)的时候,作用与Number()相同.

4. '==' 和 '==='

alert("" == false) // returns true, 因为Number("")->0, Number(false)->0.
sweet couple: null和undefined
null == undefined
//returns true, 两者默认相等,在==的情况下,null不会转换成0, undefined也不会转换成NaN.
null >= 0 // returns true, 因为在其他comparison(>,>=,<,<=)情况下, null->0.
null === undefined // returns false obviously.

对于undefined也是相同的,默认undefined只能与null相等(==, 非===),而在其他comparison情况下, undefined被转换成NaN.

上一篇 下一篇

猜你喜欢

热点阅读