数据类型:1~6
1.有哪些分类?
基本(值)类型: --5种
string:任意字符串
number:任意的数字,与正负、整数还是小数无关
boolean:true、false
null:null
undefined:undefined
**对象(引用)类型**:Object:任意对象都是objectFunction:一种特别的对象(可以执行,即函数时可以调用的对象)Array:一种特殊的对象(有数值下标、内部数据是有序的)
2.判断:
tyoeof:返回基本类型的字符串表达,即返回字符串,例:typeof a
可以判断:string、number、boolean、undefined,不可判断null
instanceof:判断对象的具体类型(因为所有对象都是object类型,所以需要进一步判断是什么具体类型),例:A instanceof Array
可以判断array和function,不能判断null和object
===:可以判断undefined、null,不可以判断数值,因为只有undefined和null这两个类型有唯一值
Q:判断数组的方法:
1)A instanceof Array
2)Array isArray(A)
3)原型链的方法:???
先定义一个数组:var a = []
然后对比进行原型对比:Array.prototype.isPrototypeOf(a)
栗子:
var avar b = function () {}var c = nullconsole.log(typeof a) // undefinedconsole.log(typeof b) // functionconsole.log(typeof c) // objactconsole.log(null === c) // trueconsole.log(undefined === a) // true
3.null和undefined的区别–它们都代表什么都没有
undefined:定义了但是没有赋值
null:定义并赋值,只是初值为null
null是基本类型,但是tyoeof null却返回‘object’,这矛盾吗?不矛盾,例子:
// 最初:
var b = null //表明将要赋值为对象,现在先置为null,之后有可能:
//确定对象就赋值
b= [1,2,3]或者 b={name: ‘kk’,age: 18}
//最后
b=null //让b指向的对象成为垃圾对象(被垃圾回收器回收-浏览器中)
4.什么时候给变量赋值null?
1)表明这个变量后面会赋值为对象
2)结束前赋值null,让对象成为垃圾对象(被垃圾回收器回收)
5.严格区别变量类型和数据类型?
数据的类型:
基本类型
对象类型
变量的类型(变量内存值的类型):
基本类型:保存的是基本类型的数据
引用类型:保存的是地址值
6.什么是实例?什么叫类型?
实例是实例对象的简称,类型是类型对象的简称
function Person (name,age){ // 构造函数 类型
this.name=name
this.age=age
}
var p =new Person(‘lily’,18) // 根据类型创建的实例对象,当函数被用来创建实例时才是构造函数
// Person(‘lily’,18) 可以这么调用,但此时Person不是构造函数
数据、变量、内存 7~10
7.什么是数据?
存储在内存内存中代表某个信息的东西,本质上是010101…
例如,var age = 18
数据的特点:
可传递,如var a = 3; var b = a
可运算,如var b = a + 2
8.什么是内存?
内存条通电后,产生可以存储数据的空间(临时的,永久的存储的空间是硬盘),虚拟的不可见的。
内存产生和死亡:内存条(电路板)==> 通电 ==> 产生内存空间 ==> 存储数据 ==> 处理数据 ==> 内存空间和数据消失
内存的分类:
栈内存:全局变量、局部变量
堆内存:对象(表示该对象的变量在栈内存中)
9.什么是变量
可变化的量,有变量名和变量值组成(变量名是内存的标识)
每个变量都对应一块小内存,变量名用来查找对应的内存,例1:
var a = 18
console.log(a) // 经历过程:通过变量名a找到a所对应的内存,然后取出该内存储存的数据,然后打印出来
例2:
var obj = {name: ‘kally’}
var a = obj // 把obj保存的地址复制给变量a
console.log(obj.name) // 先找到obj这块内存,然后obj内存中存储着一个对象的地址,这个地址保存着对象的值
变量的读和写:a = {sayHello: hello } -- 写其他情况均为读,如,a.name 、 a() 、a[]...都是读
10.数据、变量、内存三者之间的关系?
内存是储存数据的空间,变量是内存的标识
Q:var a = xxx,a内存中保存的是什么?A:xxx是基本类型数据时,a内存保存的是这个数据xxx是引用类型数据时,a内存保存的是对象的地址xxx是一个变量时,a内存保存的有可能是这个数据,可能是地址值Q:关于变量赋值的问题:A1:两个引用变量指向同一个对象时,通过一个变量改变对象内部的数据,另一个变量的内部数据也会发生改变