基本数据类型与引用数据类型的区别:
基本数据类型:在赋值时,两个变量指向不同的内存地址,相互独立。
<script>
var a=20
var b=a//动态运行流程==>第一步 先声明一个变量叫b,第二步先取a变量中保存的值,第三步把取到的20赋值给b
console.log(b) //打印结果是20
b=200
console.log(a) //打印结果是20
</script>
引用数据类型:一个大型的复杂的基本数据和引用数据的"集合体"。在赋值时,被赋值的变量不开辟新的内存空间,与赋值变量共用同一个内存空间,可以理解为两个变量指向同一个内存地址。
<script>
var a=[10,20,30]
var b=a//动态运行流程==>第一步 先声明一个变量叫b,第二步把变量a对应的引用数据的内存空间让b变量也去引用
console.log(a) //打印结果[10,20,30]
console.log(b) //打印结果[10,20,30]
b[1]=200
console.log(b) //打印结果[10,200,30]
console.log(a) 打印结果[10,200,30]
</script>
常见的引用数据类型有数组、对象、函数。
1、数组
基本知识:
A、数组就是一种数据的引用数据类型。
B、【】中的数据用英文逗号隔开。
C、获取数组元素通过索引值获取,索引值从0开始。如:
<script>
var arr[1,2,3,"hello",{"a":1}]
var r1 = arr[0]
console.log(r1) //输出为1
</script>
D、数组可以保存多种数据类型,如:
var arr = [10, 20, 30, 500, 200,"hello",18,null,true,undefined]
2、对象
A、对象就是一种数据的引用数据类型。
B、对象用{}包裹,不同数据也是用英文逗号隔开,数据采用键值对的方式存取。
例如:
var obj = {"name":"liming","age":11}
C、获取对象元素通过键获取,如
1、var name = obj['name']
2、var name = obj.name(语法糖,实际中常用这种形式)
D、对象也可以保存多种数据类型
数组中可以包含对象,对象中也可以包含数组。
3、函数
A、函数的写法:function () {代码}
B、函数不会自己运行大括号中的代码
C、声明一个函数:
第一种:定义一个函数
<script>
var a=function() {
console.log(111)
}
</script>
第二种:声明一个函数
<script>
function a() {
console.log(111)
}
</script>
调用:a() 运行大括号里面的代码,调用一次运行一次。
D、引用数据,就是一个内存容器(数据容器),可以当作容器存取数据
<script>
var fn = function() {
console.log(123)
}
fn.hqyj=666
console.log(fn.hqyj) //打印结果666
</script>
E、函数是一个特殊的对象。
<script>
var f1=function () {
}
console.log(typeof f1) //function
var f2=function() {
}
f2.age=200
var f3=f2
f3.age=100
console.log(f2.age) //100
</script>