1. 变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var 王者农药 = 倔强青铜; //可以中文命名

    i = 1;
    //少用全局变量!

    var i = 1;
    // es6 局部变量推荐let定义
    let i = 1;

    'use strict'; //严格检查模式, 预防js的随意性导致的问题
  2. number
    js不区分小数和整数

1
2
3
4
5
6
123
123.1
1.123e3
-99
NaN //not a number
Infinity //表示无穷大
  1. 字符串

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'abc' //长字符串, 两个单引号可以不在同一行,
    "abc"
    'a\'' //转义字符
    let name = "qp"; //string的不可变性, 虽然可以name[1]取一个字符, 但不能改变
    let msg = '你好, ${name}'
    str.length
    //大小写转换使用方法
    str.toUpperCase()
    str.toLowerCase()
    indexOf()
    substring()
    等等等等等方法
  2. 布尔值
    true/false

  3. 逻辑运算

    1
    2
    3
    &&
    ||
    !
  4. 比较运算符

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    =
    == //等于(类型不一样, 值一样, 也是true)
    === //绝对等于(类型和值都一样)

    NaN === NaN //返回false!
    //只能通过isNaN(NaN)来判断这个数是否是NaN
    ```
    //浮点数不要直接比较, 精度损失!
    Math.abs(1/3 - (1 - 2/3)) < 0.00000001

    6. null 和 undefined
    null 空值
    undefined 未定义

    7. 数组
    java的数组必须是相同类型的对象, js不需要这样, 类似py
    var arr[1, 2, 3, 'world', null, true];
    new Array(1, 2, 3, 'hello');
    取数组下标越界了, 就会undefined

    8. 对象
    对象是大括号, 数组是中括号
    ```js
    var person = {

    }