252 数据类型的分类、判断,undefined与null的区别,null的使用,严格区别变量类型与数据类型
判断
- 基本(值)类型
- Number ----- 任意数值 -------- typeof 【typeof: 返回字符串; instanceof、===:返回布尔值。】
- String ----- 任意字符串 ------ typeof
- Boolean ---- true/false ----- typeof
- undefined --- undefined ----- typeof/=== 【因为undefined 、null类型只有一个值,所以可以用 === 判断。】
- null -------- null ---------- ===
- 对象(引用)类型
- Object ----- typeof/instanceof
- Array ------ instanceof
- Function ---- typeof
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>01_数据类型</title>
</head>
<body>
<!--
1. 分类
* 基本(值)类型
* String: 任意字符串
* Number: 任意的数字
* boolean: true/false
* undefined: undefined
* null: null
* 对象(引用)类型
* Object: 任意对象
* Function: 一种特别的对象(可以执行)
* Array: 一种特别的对象(数值下标, 内部数据是有序的)
2. 判断
* typeof: 返回字符串
* 可以判断: undefined/ 数值 / 字符串 / 布尔值 / function
* 不能判断: null与object、object与array
* instanceof:
* 判断对象的具体类型
* ===
* 可以判断: undefined, null
-->
<script type="text/javascript">
//1. 基本
// typeof返回数据类型的字符串表达
var a;
// undefined 'undefined' true true
console.log(a, typeof a, typeof a === 'undefined', a === undefined)
console.log(undefined === 'undefined'); // false
a = 4
console.log(typeof a === 'number'); // true
a = 'atguigu'
console.log(typeof a === 'string'); // true
a = true
console.log(typeof a === 'boolean'); // true
a = null
console.log(typeof a, a === null); // 'object' true
console.log('-----------------'); //
//2. 对象
var b1 = {
b2: [1, 'abc', console.log],
b3: function() {
console.log('b3')
return function() {
return 'xfzhang'
}
}
}
console.log(b1 instanceof Object, b1 instanceof Array); // true false
console.log(b1.b2 instanceof Array, b1.b2 instanceof Object); // true true
console.log(b1.b3 instanceof Function, b1.b3 instanceof Object); // true true
console.log(typeof b1.b2, '-------'); // 'object' 【不是 array】
console.log(typeof b1.b3 === 'function'); // true
console.log(typeof b1.b2[2] === 'function'); // true
b1.b2[2](4); // 4
console.log(b1.b3()()); // xfzhang
/*var obj = {
name: 'Tom',
age: 12
}
function test () {
var a = 3
}
var arr = [3, 'abc']
arr[1]*/
</script>
</body>
</html>
undefined与null的区别,null的使用,严格区别变量类型与数据类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>01_相关问题</title>
</head>
<body>
<!--
1. undefined与null的区别?
* undefined代表定义未赋值
* nulll定义并赋值了, 只是值为null
2. 什么时候给变量赋值为null呢?
* 初始赋值, 表明将要赋值为对象
* 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
3. 严格区别变量类型与数据类型?
* 数据的类型
* 基本类型
* 对象类型
* 变量的类型(变量内存值的类型)
* 基本类型: 保存就是基本类型的数据
* 引用类型: 保存的是地址值
-->
<script type="text/javascript">
// 实例: 实例对象
// 类型: 类型对象
function Person(name, age) { // 构造函数 类型
this.name = name
this.age = age
}
var p = new Person('tom', 12) // 根据类型创建的实例对象
// Person('jack', 12)
// 1. undefined与null的区别?
var a;
console.log(a); // undefined
a = null;
console.log(a); // null
//起始
var b = null; // 初始赋值为null, 表明将要赋值为对象
//确定对象就赋值
b = ['atguigu', 12];
//最后
b = null; // 让b指向的对象成为垃圾对象(被垃圾回收器回收)
// b = 2
var c = function() {
};
console.log(typeof c); // 'function'
</script>
</body>
</html>