数据类型
1、分类
基本(值)类型
- String:任意字符串
- Number:任意的数字
- Boolean:true/false
- undefined:undefined
- null :null
对象(引用)类型
object
:任意对象function
:函数,一种特别的对象(可以执行)array
:数组,一种特别的对象(数值具有下标,内部数据是有序的)
2、类型的判断
typeof
:可以判断 undefined/ 数值 / 字符串 / 布尔值Boolean / Function
-不能判断 null和object object和arrayinstanceof
:判断对象的具体类型===
:全等,可以判断undefined,null
<script>
// 1、基本数据类型
var a;
// typeof返回数据类型的字符串表达
console.log(a, typeof a, typeof a==="undefined", a===undefined);//undefined "undefined" true true
console.log(undefined === 'undefined'); //false
a = 3;
console.log(typeof a ==='number');//true
a = 'abc';
console.log(typeof a ==='string');//true
a = true;
console.log(typeof a === 'boolean');//true
a= null;
console.log(typeof a, a===null); //obiect true
console.log('--------------------')
// 2、对象类型
console.log('对象类型')
var b1 ={
b2:[1,'abc',console.log],
b3:function(){
console.log('b3');
return function(){
return 'hello';
};
}
};
// instanceof判断a(实例对象)是不是b(构造函数)类型的实例
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,'flag'); //'object' b1.b2为array(数组)类型
console.log(typeof b1.b3 === 'function'); //true
console.log(b1.b2[2] instanceof Function, typeof b1.b2[2] === 'function'); //true true
b1.b2[2]('你好'); //'你好'
console.log(b1.b3()()); // hello
b1.b3(); //可以执行
/*var obj = {
name: 'tom',
age:12
};
function test() {
var a = 3;
};
var arr = [3, "abc"];
console.log(arr[1]);*/
// 实例:实例对象
// 类型:类型对象
// 函数是一种特殊的对象(可执行)
function Person(name,age){ //构造函数 类型
this.name = name;
this.age = age;
}
var p = new Person('tom',12); //根据类型创建的实例对象
// Person('jack',12);
</script>
1、undefined与null的区别?
undefined
代表定义未赋值null
代表定义并赋值了,但是值为null
2、什么时候给变量赋值为null?
- 初始赋值:表明将要赋值为对象
结束前:让对象成为垃圾对象(垃圾回收)
3、严格区别变量类型与数据类型?
(1)数据的类型
- 基本类型
- 对象类型
(2)变量的类型(变量内存值的类型) - 基本类型:保存的基本类型的数据
- 引用类型:保存的是地址值
对象类型即是引用类型
<script>
var a;
console.log(a); //undefined,未赋值
a = null;
console.log(a); //null,赋值为null
var b = null; //初始赋值为null,表面将要赋值为对象
// 确定对象就可以赋值
b = ['hello',12];
// 最后,为了释放对象内容
b = null; //让b指向的对象成为垃圾对象(被垃圾回收器回收:垃圾回收)
// b = 2; //又重新赋值了,没有意义
// c保存的是地址值,即为引用类型
var c = function(){
};
console.log(typeof c) //'function'
</script>
数据、变量、内存
定义
1、什么是数据
- 存储在内存中代表特点信息的东西,本质上是0101.......
- 数据的特点:可传递、可运算
2、什么是内存
- 内存条通电以后产生的可存储数据的空间(临时的)
- 内存产生和死亡:
内存条(电路板)==>通电==>产生内存空间==>存储数据==>处理数据==>断电==>内存空间和数据都消失
一块小内存的2个数据
`内部存储的数据` `地址值`
内存分类
`栈:保存全局变量/局部变量(变量名)` `堆:对象(函数、数组)`
3、什么是变量
- 可变化的量:由变量名、变量值组成
- 每个变量都对应一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
4、内存、数据、变量三者之间的关系
- 内存是用来存储数据的空间
- 变量是内存的标识
<script>
var age = 18;
console.log(age)
var obj = {name:'tom'};
console.log(obj.name);
function fn(){
var obj = {name:'tom'};
};
var a = 3;
var b = a + 2;
</script>
评论 (0)