javaScript基础知识小结

62 阅读2分钟

我正在参加「掘金·启航计划」
1.5个false值:数字0、空字符串""nullundefinedNaN都会被转换成false

2.JavaScript 中有八种基本的数据类型:

  • 七种原始数据类型:
    • number 用于任何类型的数字:整数或浮点数,在 ±(253-1) 范围内的整数。
    • bigint 用于任意长度的整数。
    • string 用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。
    • boolean 用于 true 和 false
    • null 用于未知的值 —— 只有一个 null 值的独立类型。
    • undefined 用于未定义的值 —— 只有一个 undefined 值的独立类型。
    • symbol 用于唯一的标识符。
  • 以及一种非原始数据类型:
    • object 用于更复杂的数据结构。

3.运算符的优先级

优先级名称符号
15一元加号+
15一元负号-
14求幂**
13乘号*
13除号/
12加号+
12减号-
2赋值符=
let apples ="2";let oranges ="3";

alert( apples + oranges );// "23",二元运算符加号合并字符串

// "+apples + +oranges" 中的一元加号先生效;在二元运算符加号起作用之前,所有的值都被转化为了数字
alert( +apples + +oranges ); // 5

4.前置运算符和后置运算符

前置形式返回一个新的值,但后置返回原来的值(做加法/减法之前的值)。

5.值的比较

1.在非严格相等 == 下,null 和 undefined 相等且各自不等于任何其他的值。

undefined>0 // (1)false
undefined==0// (2)false 
undefined<0 // (3)false
(1) 和 (2) 都返回 false 是因为 undefined 在比较中被转换为了 NaN,而 NaN 是一个特殊的数值型值,它与任何值进行比较都会返回 false。
(3) 返回 false 是因为这是一个相等性检查,而 undefined 只与 null 相等,不会与其他值相等。

null > 0   // (1) false
null == 0 // (2) false
null >= 0 // (3) true
undefinednull 在相等性检查 == 中不会进行任何的类型转换,它们之间互等外,不会等于任何其他的值,所以(2)中 null == 0 会返回 false。
进行值的比较时,null 会被转化为数字,因此它被转化为了 0。这就是为什么(3)中 null >= 0 返回值是 true,(1)中 null > 0 返回值是 false

6.类型转换

易错点:

对 undefined 进行数字型转换时,输出结果为 NaN,而非 0

对 "0" 和只有空格的字符串(比如:" ")进行布尔型转换时,输出结果为 true

布尔型转换遵循以下规则:

变成……
0, null, undefined, NaN, ""false
其他值true

数字型转换遵循以下规则:

变成
undefinedNaN
null0
true / false1 / 0
string“按原样读取”字符串,两端的空白字符(空格、换行符 \n、制表符 \t 等)会被忽略。空字符串变成 0。转换出错则输出 NaN。