基础数据类型
- 整数
console.log(1);
- 小数
console.log(1.3);
- 逻辑变量
console.log(true);
console.log(false);
var
定义一个变量,分配内存,但是内存只够存基本数据类型,引用
作用域: var 定义在哪里,作用域就在哪里
如果一个变量没有定义或者没有赋值,值为 [undefine]
如果一个变量不保存任何数据,值为 [null]
var 在运行的时候存的是什么就是什么,可以是任意的数据类型
数组
- 数组结构: [value1,value2,…]
- 数组内部的每个元素可以存放任何类型的数据
数组的索引是从0开始的
数组的赋值:
-
- 直接赋值
-
- 索引赋值
// 直接赋值
var arr = [a,b,c];
// 索引赋值
var arr = [];
arr[0] = 1;
// 多类型
arr = [1,a,[xx,yy],bb,{[1,2,3]}]
// 可以存放任何类型包括 null 和 undefine
- 取值
-
- 索引取值
// 直接赋值
var arr = [a,b,c];
console.log(arr[0]); // a
console.log(arr[1]); // b
表(字典)
- 数据结构:{key:value,key1:value1,…}
- key 可以是整数,字符串
- value 可以是任意类型,可以嵌套
- 赋值:
-
- 直接赋值
// 定义和赋值
var table = {1:11,2:22,keya:valueaa}
-
- 索引赋值
// 索引赋值
var table = {};
table[0] = 11;
table[1] = 'valueaaa';
// 索引 key 赋值
table.xx = 'xxx';
- 取值
-
- key取值
// 赋值
var table = {a:'aaaa',b:'bbbbbbb'}
// 取值
console.log(table.a); // aaaa
console.log(table.b); // bbbbbbb
console.log(table.c); // undefine 访问了一个不存在的值为undefine
函数对象
数据结构: function 函数名称[可选]{ ([return] value;) [可选] }
例:
// 没有返回值的函数
// 函数定义
function demo(p1,p2){
console.log(p1);
console.log(p2);
}
// 调用
demo(1,2);
// 有返回值的函数
// 函数定义
function add(x,y){
return x + y;
}
// 调用
var v = add(1,2);
console.log(v); // 3
- 注意: 函数必须要先定义然后才能调用,不然会报错
复杂类型与基本类型
- 整数,小数,逻辑值为基本数据类型
- 表,数组,字符串对象,函数对象 为复杂数据类型
- 基本数据类型传递是值传递=> 复制一份值赋值给目标变量,两者指向不同的值,但值相同
复杂数据类型传递是引用传递=> 复制一份引用给目标变量,两者指向同一个值
-
- 值传递:
// 定义一个a 变量 并赋值1
var a = 1;
// 定义一个b 变量 并赋值a
var b = a;
// 重新给b 赋值
b = 3;
console.log(a); // 1
console.log(b); // 3
-
- 引用传递:
// 赋值
var table = {a:'aaaa',b:'bbbbbbb'}
// 创建一个tb 变量 并赋值table
var tb = table;
// 重新给表中的key 为a的值赋值
tb['a'] ="xxxx";
console.log(table); //{ a: 'xxxx', b: 'bbbbbbb' }
console.log(tb); //{ a: 'xxxx', b: 'bbbbbbb' }
// 两个值一样 复杂类型的数据传递是引用传递