数据类型之间的转换
之前我们学的知识基本数据类型之间的转换
那如果带有引用数据类型呢?
引用数据类型之数组简单了解
- 用中括号([])包含以逗号分隔的元素列表
- 数组是特殊的对象:
1.它的属性名是数字,数字从零开始,逐级递增,每一个数字代表着当前项的位置 =>我们把这种数字属性名叫做“索引”
2.默认有一个length属性存储数组的长度
let arr = [10, 20, 30];
console.log(arr[0], arr[1], arr[2]);
console.log(arr.length);
console.log(arr['length']);
Number()
- 对象转换为数字:先把对象转换为字符串,再把字符串转为数字
-
普通对象
-
数组对象
普通对象转化为数字类型
Number({}); 先{}转化为字符串,"[objecy Object]"===>NAN
Numbeer([]);=>0 []==>""==>0
Numbeer([1]);[1]==>"1"==>1
Numbeer([1,2,3]);[1,2,3]==>"1,2,3"==>NAN
String();
特殊
只要是普通对象{},转化为字符串就是"[Object object]"
String({name:lili});===>"[Object object]"
String({}); ===>"[Object object]"
String([1,2,3]);===>"1,2,3"
String([1,2,3,4,5,6,7]);===>"1,2,3,4,5,6,7"
String([1]);===>"1"
String([]);===>""
数组对象转化为数字类型
/*
* 1.先把arr转换为字符串: "10"
* 2.在把"10"转换为数字:10
*/
let arr = ["10"];
console.log(Number(arr)); //=>10
/*
* 1.先把ARR转换为字符串: "10,20"
* 2.在把"10,20"转换为数字:NaN
*/
arr = ["10", "20"];
console.log(Number(arr)); //=>NaN
console.log(Number([])); //=> []->'' Number('')->0
console.log(Number(['AA'])); //=> ['AA']->'AA' Number('AA')->NaN
数据类型检测
- typeof
- instanceof
- constructor
- Object.prototype.toString.call()
typeof
var res1 = typeof 100;
var res2 = typeof "今天是个好日子”;
var res3 = typeof true;
var res4 = typeof null;
var res5 = typeof undefiend;
var res6 = typeof Symbol;
var res7 = typeof 10n;
var res8 = typeof {};
var res9 = typeof [];
console.log(res1,res2,res3,res4,res5,res6,res7,res8,res9,);
数据类型:nmber,String,boolean,Object,undefiend,symbol,bigint,object,obbect
## typeof缺点
1.不能识别null
原因:所有的计算机都是二进制储存的,当你储存的前三位是000时,就会被识别为对象,null是全部都是0
2.不能细分对象(分不清普通对象和数组对象)
面试题
typeof []==>"object"
typeof typeof []==>typeof "object"==>"string"
typepf typeof typeof []==>"string"
typeof typepf typeof typeof []==>"string"
基础代码调试
1.如果要输出多个,用逗号隔开 调试代码的方式
console.log(111,222);
2.详细输出,一次只能输出一个
console.dir(111)|
3.弹框 会阻塞代码执行
需要等到alert弹出框,点击确定关闭后,后面的代码才会继续执行
如果弹窗的内容不是字符串,会转化为字符串
alert(111);
alert({});
alert([]);
4.提示框 如果点击的是确定结果为true,取消就是flase
comsole.log(confirm("你想删除这条数据吗"));
5.输入框 点击确定输入啥值就是啥,点击取消就是null
console.log(prompt("你是boy还是girl?"));
获取属性值的获取
对象的属性名一般都是字符串格式(还可以是数字格式),属性值可以是任意类型数据
●对象.属性名;
●对象['属性名'];
var obj={
"name":"lili",
"age":18
}
console.log(obj.name);
console.log(obj["name"])
<script>
//对象 引用数据类型
//Object (普通对象)
//对象俗称理解就是在这个里面把多个信息正整合
//用大括号包裹,里面成对出现,俗称键值对,如果要多对出现用逗号隔开
//{"属性名:“属性值"}
var dongdong={age:22,sex:1,bobby:睡觉}
var age=20;
var sex=1;
var hobby="睡觉";
//对象的增删改查
//查:
// 第一种:对象.属性名
var info=dongdong.age;
console.log(dongdong.age);
console.log(info);
// 第二种:对象["属性名"] ,一定要带引号,否则就是变量
// 注意:如果属性名是数字,不能用点属性名要用中括号
var info2=dongdong["age"];
comsole.log(info2);
//新增和修改
//如果属性名已经存在,那就是修改,如果没有就是新增,有则修改,无则增加
var dongdong={age:22,sex:1,bobby:睡觉}
// 删除
//1.对象.属性名=null
//2.delete 对象.属性名
var dongdong={age:22,sex:1,bobby:睡觉}
dongdong.age=null;//假删除
delete dongdong.age;//真删除
</script>