js里的数据类型

数字number
字符串string
布尔值boolean
undefined未定义
null
符号symbol
对象object

js里的7种数据类型

  • number 数字
  • string 字符串
  • boolean 布尔值
  • symbol 符号
  • undefined
  • null
  • object 对象(数组array和函数function都是对象)

typeof返回的都是字符串类型




























xxx 的类型stringnumberbooleansymbolundefinednullobjectfunction
typeof xxx‘string’‘number’‘boolean’‘symbol’‘undefined’‘object’‘object’‘function’

number数字

  • 整数和小数:1 1.1 .1
  • 科学记数法:1.23e2 //123【表示1.23乘以10的2次方】
  • 二进制:0b11 //3 【以0b开头的,js默认为二进制】
  • 八进制:011(后来 ES5 添加了 0o11 语法)//3 【以0开头的默认为8进制】
  • 十六进制:0x11 //17 【以0x开头的默认为16进制】

string字符串

  • 空字符串:'' //空字符串的length=0
  • 字符串换行:

    1
    2
    var s = `12345
    67890`; // 含换行符号,所以s.length=11
  • 符号转义

    1
    2
    3
    4
    5
    6
    7
    var s = '\''; // '
    var s = '\n' // 回车
    var s = '\t' // tab
    var s = '\\' // \ 用转义符转义斜杠

boolean布尔值

  • a && b 与运算
  • a || b 或运算

null空对象,undefined非对象空值

  • 如果想声明一个对象,但暂且不赋值,用null表示空对象
    var obj = null
  • 非对象声明,但暂且不赋值,用undefined(但是实际上你直接 var xxx 一下就行了)
    1
    2
    3
    4
    var notObj = undefined;
    简写为
    var notObj;

object对象

基本对象

1
2
3
4
5
6
7
8
9
10
11
12
var 王花花 = {
age: 18,
gender: 'female',
height: 168,
weight: 57,
married: true
};
王花花.age // 18
等同于 王花花['age']
王花花.gender // fenale
等同于 王花花['gender']

复杂对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var x = {
a: 1,
b: 2,
c: {
c1: 3,
c2: 4,
c3: {
d1: 5,
d2: 6
}
}
};
x.c // {c1: 3, c2: 4}
x.c.c1 // 3
x.c.c3.d2 // 6

对象的格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var obj = {
9a: 'hello' //报错,key不加引号,则命名需要按照变量名的命名规则,不能以数字开头
};
var obj = {
'9a': 'hello' //9a加上单引号就不报错了
};
-----------------
var obj = {
'': 'hello' //空字符串可以作为key
}
obj[''] // hello
var obj = {
名字: '王花花' //可以用中文作为key名,因为在变量名的命名规则中,中文命名是合法的
}

操作对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var obj = {
a: 1,
b: 2,
c: 3
};
删除
delete obj.a;
等同于
delete obj['a'];
1个key是否存在
'a' in obj;//true
遍历对象
for (var key in obj) {
console.log(key); // a,b,c
console.log(obj[key]); //1,2,3
}

对象的相等情况

1
2
3
4
5
6
7
var a = [1,2,3];
var b = [1,2,3];
a===b // false,因为a和b指向不同的Address
var a = [1,2,3];
var b = a;
a===b //true,因为上一步a将自己的Address赋给了b

typeof与instanceof

instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

1
2
3
var arr = [1,2,3];
arr instanceof Array; //true
arr instanceof Number; //false

-------------本文结束感谢您的阅读-------------