JS(3)、数据类型和typeof

目录

一、数据类型

(一) 基本数据

(二) 引用数据

二、typeof


一、数据类型

(一) 基本数据

var a = 20;
var b = a; // 动态运行流程 ==> 第一步 声明一个变量b 第二步取a变量中保存的值 第三步把取到的20赋值给b
console.log(b);
b = 200;
console.log(a);

1. undefined 未定义或定义了变量却没有初始化

undefined的意义: 为了程序的安全而设定的一种数据

var a;
console.log(a);

2. 布尔数据 boolean

true/false都是关键字 代表布尔值(如100>18 就是布尔表达式 它表达的结果是布尔值)

var a = true;
var b = false;

if (a) {
     console.log(666);
};

if (100 > 18) {
     console.log("可以喝酒");
};

3. null 空

这种类型的数据只有一个数据 就是null

null的意义: 它代表了一个变量是有数据的 只不过还没有业务数据

var a = null;
var b;
console.log(a); // null
console.log(b); // undefined

4. string 字符串

    字符串的引号不是字符 是一种标记 为了跟变量名做区分

    字符串可以是单引号或双引号 还可以是反引号(ES6)

var a = 'he"l"lo';
console.log(a);

    如果a或b有任意一个是字符串 就会把另一个不是字符串的数据转化为字符串 然后拼接

var a = '100';
var b = 200;
var c = a + b;
console.log(c);

(二) 引用数据

引用数据类型: 一个大型的复杂的基本数据和引用数据的"集合体" 

var a = [10,20,30];
var b = a; // 动态运行流程 ==> 第一步 声明一个变量b 第二步把变量a对应的引用数据的内存空间让b变量也去引用 
console.log(a);
console.log(b);
console.log(b[1]);
b[1] = 200;
console.log(b);
console.log(a);

1. 数组

    保存的元素用逗号隔开

    数组取元素是通过下标取值的 从0下标开始

    数组中可以保存很多数据 每一个数据的类型是不限定的

var arr = [10, 20, 30, 500, 200, "hello", 18, null, true, undefined];
var n1 = arr[3];
console.log(n1);
var n2 = arr[0];
console.log(n2);

var arr = ["hello", 20, , , 100];
arr[2] = "h5"; // 在下标2添加元素
console.log(arr[2]);

     数组也可以保存数组

var arr = [200, "hello", [10, 20, 30], 400];
console.log(arr[2]);
console.log(arr[2][2]);
var arr2 = arr[2];
var re = arr2[2];
console.log(re);

var arr3 = [1,[1,[1,200]]];
console.log(arr3[1][1][1]);

var arr4 = [["导航1", "导航2"], ["分类1", "分类2"]];
var re1 = arr4[1][0];
console.log(re1);

2. 对象 object

    跟数组一样 用来保存数据 只不过每一个数据都自己设计"下标"(键值对的键)

    对象可以保存任何类型的数据

var obj1 = {
    name: "karen",
    age: 24
};

var a1 = obj1["name"];
console.log(a1);

var b1 = obj1["age"];
console.log(b1);

obj1["age"] = 25;
console.log(obj1);


var obj2 = {
    name: "jack",
    age: "25",
    books: ["js", "css", "ts"]
};

console.log(obj2["age"]);
console.log(obj2["books"]);
console.log(obj2["books"][2]);


var obj3 = {name:"jack"};
obj3["name"] = "karen"; // 如果已经有这个属性了 就会覆盖之前的值
obj3["age"] = 25; // 如果没有age成员 就会添加一个新成员age 然后赋值25
var a = "zzz";
var b = "firstname";
obj3[b] = a;
console.log(obj3);

    对象的成员有一种简便写法(语法糖)

     obj["name"]<==>等价于obj.name

var obj = {
    age: 20
};
obj.age = 200;
console.log(obj.age);

3. 函数

    函数的写法 function关键字小括号大括号

    函数不会自己运行大括号中的代码

// 声明一个函数
function fn() {
	console.log(123);
};
// 定义一个函数
var a = function() {

};


var a = function () {
	console.log(666);
};
console.log(a);

a(); //函数的调用 ==> 让大括号的代码运行 而且调用一次就会运行一次

var b = a;
b();

    函数是一种非常特殊的对象(引用数据) 因此typof检测函数的结果不再是object 而是function 

var f1 = function() {

};
console.log(typeof f1);


var f2 = function() {

};
f2.age = 200;

var f3 = f2;
f3.age = 100;
console.log(f2.age);

二、typeof

typeof: 分清一个变量中保存的数据是什么类型的数据

var a = 20;

var b = '200';

var re = typeof (a);
console.log(re); // number

var re1 = typeof (b);
console.log(re1); // string

var re2 = typeof (null);
console.log(re2); // object

var re3 = typeof (function () {});
console.log(re3); // function

笔试题

var a = 100;
a = a + 21;
var b = a % 19;
var re3 = typeof (b);

// 问re3的数据类型是什么?
console.log(re3); // 取出变量re3的值并打印
var re4 = typeof (re3);
console.log(re4); // re3的数据类型: string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值