一、基本数据类型:
1、number、string、boolean、null、undefined、symbol、object,七种数据类型。
2、简单类型(基本类型)有number、string、boolean、null、undefined、symbol。
复杂类型由简单类型组成,复杂类型为object。

二、null和undefined区别:
1、都表示没有值
2、变量没赋值,就是undefiend
3、在if语句中,它们都会被自动转为false
4、对象声明未赋值一般惯例是让其值先为null
5、非对象变量声明不赋值,一般惯例是先让其值为nudefined,实际使用种直接声明变量不赋值即可。【var 变量名】不必写成【var 变量名 = nudefined】

三、string转义符、换行等问题:
代码书写多行字符串时(注意输出还是一行),建议用+,不建议用转义符加空格方式,这样不易阅读。

var s = '123'+
'456'

var s = '123\
456'



var s = '\''
s
"'"
var s = '''
VM178:1 Uncaught SyntaxError: Invalid or unexpected token


四、布尔值boolean的知识点:
1、boolean只有两个值true或false
2、boolean用于条件判断时,以下六种情况都是视为false
undefined
null
false
0
NaN
""或''(空字符串)

五、number相关知识点:
1、JavaScript 内部实际上存在2个0:一个是+0,一个是-0,区别就是64位浮点数表示法的符号位不同。它们是等价的。
2、几乎所有场合,正零和负零都会被当作正常的0。

-0 === +0 // true
0 === -0 // true
0 === +0 // true
+0 // 0
-0 // 0
(-0).toString() // '0'
(+0).toString() // '0'

3、唯一有区别的场合是,+0或-0当作分母,返回的值是不相等的。
(1 / +0) === (1 / -0) // false

4、NaN(not a number)主要出现在将字符串解析成数字出错的情况下,NaN属于数值类型,它不等于任何值包括它本身。NaN在布尔运算时被当作false,与任何值运算包括自己得到的都是NaN。

NaN === NaN // false
Boolean(NaN) // false
NaN + 32 // NaN
NaN - 32 // NaN
NaN * 32 // NaN
NaN / 32 // NaN

六、object相关知识点:
1、object可以嵌套

var person = {
     'name': '小明',
     'child': {
         'name': 'son'
     }
}

2、object 的 key 只能是字符串,不存在其他类型的 key
3、object['key'] 可以写作 object.key
4、object.key 与 object[key] 不同

5、object的key不加引号情况下,需遵守标志符规则(首字母不能是数字,不能加引号等等),如果加引号则可以不遵守。

var obj = {9a:12}//不加引号对象key命名数字开头
【报错】Uncaught SyntaxError: Invalid or unexpected token
var obj = {'9a':12}
undefined


var obj = {a b:'ab'}//不加引号对象key命名中间加空格
【报错】Uncaught SyntaxError: Unexpected identifier
var obj = {'a b':'ab'}
undefined





TTTT
80 声望1 粉丝