数据类型
基本数据类型
值类型,存储变量中存储的是值本身
简单(基本)数据类型放到栈里面
字符串--string
模板字符串 分号里面+${}
//不用+号来拼接字符串 反引号+${}
document.write(`我今年${age1}岁了`)
undefine未定义的数据类型--声明但是没有赋值
let age
consloe.log(age)
此时控制台输出就为undefine
boolean布尔型---true或false
null空值---赋值但是为空
let age = null
console.log(age);
检测数据类型 typeof(数据)
let name='JUSTODIT'
console.log(typeof name);
检测引用数据类型 instanceof
语法:谁 instanceof(属于) 谁
const arr=[1,2,3,]
arr instanceof(属于) Array
const obj={name:'justodit'}
obj instanceof Object
数据类型转换
隐式转换---
1、带有运算符的会自动将字符串转为数字类型除了+号除外
2、任何数据和字符串相加都是字符串
3、+号两边只要有一个字符串就会把另一个转换成字符串
显示转换---
1、Number( )
2、+()
3、paraInt()保留整数
4、paraFloat()保留小数点
引用数据类型
复杂数据类型,存储的是变量的地址(引用)
复杂数据类型放放到堆里面
声明变量优先用const
1、用const定义的数组和对象可以进行正常的增删
2、const声明的值不能更改,声明变量时里面需要初始化
2、对于引用数据来说const声明的不是值,是地址!
let obj1 = {
age: 15
}
//把obj1的地址给obj2
let obj2 = obj1
//obj2的地址和obj1的地址一样
//同一个地址找到的值是一样的
obj2.age = 20
//修改了obj2的值也相当于修改了obj1的值
console.log(obj1);
const arr=['just','just']
arr=[1,2,3] //数组的地址改变了
console.log(arr);
</script>