文章标题nodejs-002nodejs数据类型

来源:互联网 发布:atom php常用插件 编辑:程序博客网 时间:2024/05/29 19:33

一、基本数据类型

1、整数
2、小数
3、逻辑变量
var定义一个变量,分配内存。但是其内存大小只能存放基本数据类型和发展数据类型的引用。
=:给变量赋值
var定义在哪里,变量的作用范围就在哪里
console.log(变量); //打印一个变量
变量在运行时没有定义或者没有赋值,会提示undefine
若变量不保存任何数据,定义时初始化为null

console.log(10); // 整数console.log(3.14); // 小数console.log(true); // 逻辑trueconsole.log(false); // 逻辑falsevar a; // 分配一个内存,基本数据,复杂对象引用;a = 2.4;console.log(a);var b = null; // 没有存放任何数据console.log(b);// 使用一个没有初始化的变量, undefinevar c;console.log(c);

二、复杂数据类型

1、数组
数组的定义 [value1,value2,…]
数组里面的每一个元素可以存放任何类型的数据
使用索引的方式获得数组存储的内容
索引从0开始,使用 数组名[索引] 访问

// 按顺序存放一组元素,数组索引下标从0开始c = []; //[], 定义一个数组对象console.log(c);c = [1, 2, 3, 4]console.log(c);// 数组是根据索引来访问元素, 索引是从0开始的,  索引-->valueconsole.log(c[0]); // 第0个元素 1console.log(c[1]); // 第1个元素 2console.log(c[2]); // 第2个元素 3console.log(c[3]); // 第3个元素 4// 数组里面可以存放任何不同类型的元素c = [1, 2.1, true, false, [0, 1, 2]];console.log(c[0]);console.log(c[1]);console.log(c[4]);

2、表
表的定义 {key0:value1,key1:value2,…}
key可以是整数,也可以是字符串
value可以是任意类型
访问表中元素的方式:(1)表[key] (2)表.key

// {}表示定义一个表,字典, key: -->valuevar list_table = {};list_table = {    0: true,    hello: 3,}console.log(list_table);// 访问已经存在的key --> value,console.log(list_table.hello); console.log(list_table["hello"]); console.log(list_table["0"]);// 访问一个不存在的keyconsole.log(list_table.temp_key); // undefinelist_table.temp_key = [0, 1, 2];console.log(list_table.temp_key);console.log(list_table);list_table["witch_666"] = 666;console.log(list_table);

3、字符串对象

// 字符串对象; "Hello", 'Hello'var hello_str = "Hello";console.log(hello_str);hello_str = 'Hello';console.log(hello_str);

4、函数对象
函数定义 function(参数1,…){}
return; //返回语句
函数调用,代码跳转

// 定义一个变量,指向一个函数对象 // function关键字, (参数1, 参数2) { 函数体}var call_func = function (param1, param2) {    console.log("Hello call func!!!!", param1, param2);    return;}// 变量,或者是名称, 传递参数console.log("begin");call_func(3, 4);console.log("end");// 函数可以有返回值,可以没有返回值call_func = function(param1) {    return (param1); // 返回我们的数据};// 可以在函数外面使用变量来接收函数返回值var ret = call_func(4);console.log(ret);//用函数名称定义函数,则函数名称指向这个函数对象,可以使用函数名称调用//函数名称在整个js文件里有效//函数只有在执行的时候才会被调用,调用时跳转到函数里面执行,执行完成后返回到调用函数的下一条指令继续执行function test_func_name() {    console.log("test_func_name");} console.log("begin call func");test_func_name();console.log("out call func");

小结

整数、小数、逻辑变量是简单数据对象,=赋值时传递的是值
字符串、数组、表、函数是复杂数据对象,=传递的是引用,变量指向复杂数据对象所在的地址

var b = 3;var c = b; // 传递的是值,变量本身的内存能存下基本数据类型;c = 4;console.log(b); // b = 3// 复杂数据对象,我们变量里面存放的是引用,引用是可以直接存放到我们的变量所对应的内存里面的;b = [1, 2, 3]; // 把数组的访问快捷方式,"引用"复制给变量b的内存c = b; // 传递的不是值,而是引用,对象的地址,对象的快捷方式c[0] = 2; // c[2, 2, 3]console.log(b); // b=[2, 2, 3]

函数定义与调用

var System = {      //在表对象里    test_name: function() {        console.log("test_name func");    },    test_func: function() {        console.log("test_func func");    },    age: 10,    sex: -1,    name: "Blake",};System.test_name();System.test_func();console.log(System.name);var  Cmd = [      //在数组里    function() {        var my_test = 10;        console.log("helloworld");    },];Cmd[0]();function test_class(param1) {    console.log(param1);}// 函数里面定义的是什么,参数就是什么test_class({    width: 100,    height: 100,    xpos: 0,    ypos: 0,});

函数重名
函数重名时会调用后定义的那一个,因为在加载的时候先定义的会被覆盖。