普通对象
/*
对象/引用数据类型:
+Object(普通对象)
+都西昂通俗理解就是再这里面把多个信息整合在一起
+用大括号包裹,里面是成对出现,俗称键值对(key value),如果要多对就是都好隔开
{"属性名":"属性值""}
+对象的属性名一般是字符串或者数字
*/
var zhangsan = {"age":20,sex:1,hobby:"睡觉",100:100}
var lisi = {age:20,sex:1,hobby:"睡觉",100:100}
/*
对象的增删改查
查:
1.对象.属性名
2.对象[“属性名”],一定要带引号,否则就死活变量
*/
var info = zhangsan.age;
console.log(zhangsan.age);
console.log(info);
//此时如果不带引号,age是变量
//lisi[age];
var info2 = lisi["age"];
console.log(info2);
//属性名如果是数字,不能用点语法
//console.log(shangsan.100);
console.log(zhangsan[100]);
/*
操作过程中遇到的问题:
1.为什么不能直接写
+属性名是可以字符串或者数字,但是属性值是任意的数据类型,如果不带引号,当成变量去识别,会报错,is not defined
2.如果查找一个不存在的属性名,结果是undefined
*/
//result 缩写res
/*
普通对象的新增和修改:
+如果属性名和属性值已经存在,那就是修改,如果没有就是新增
+如果添加的属性名不是字符串或者数字,那会转换成字符串
*/
/*普通对象的删除
+对象.属性名=null
+delete 对象.属性名
*/
var obj = {age :18,name :"wangwu"};
//obj.age=null; 假删除
delete obj .age ;//真删除
console.log(obj);
输出方式
console.log();
//详细输出
console.dir();
//弹框 会阻塞代码执行
//如果弹框的内容不是字符串,会转换为字符串
alert(111);
//提示框 如果点确定,就是true;如果点取消就是false
console.log(confirm("你想关闭提示框吗"));
//输入框 点确定,输入啥就是啥;点取消。就是null
console.log(prompt("你是boy还是girl"));
数据类型之间的转换
//Number():把其他数据类型转换为number类型
//number([])==>""==>0
//number([1])==>"1"==>1
//number([1,2,3])==>"1,2,3"==>NaN
//String():把其他数据类型转换为string类型
//只要是普通对象{},转换为字符串就是‘[object Object]’
/*
String([1,2,3])==>'1,2,3'
String([1])==>'1'
String([])==>''
*/
/*Boolean(): "" 0 null undefined NaN
*/
Boolean([]);true
Boolean([1]);true
Boolean([1,2]);true
Boolean({});true
Boolean({a:1});true
数据类型转换
/*
数据类型检测
+typeof
+instanceof
+constructor
*/
var res = typeof100;
var res2 = typeof"今天天气不错"
var res3 = typeoftrue;
var res4 = typeofnull;
var res5 = typeofunderfined;
var res6 = typeofSymbol();
var res7 = typeof10n;
var res8 = typeof {};
var res9 = typeof [];
/*typeof 有缺陷,
+不能识别出null
原因:计算机都是以二进制存储的,当存储的前三位是000的时候,就会被识别为对象,因为null全都是0
+不能细分对象
*/
console.log(res,res2,res3,res4,res5,res6,res7,res8,res9);//"数据类型" "number" "string"
/*
小意外
在控制台直接输出{}+1====>1
+如果在控制台直接这么输出的话,会把{}看成一个代码块,{}+1==>+1==>1
在文档里面输出{}+1====>"[object Object]1"
在文档里面输出{}+1====>"[object Object]1"
*/
特殊对象之数组
/*特殊对象,数组
+数组里面可以放任意数据类型的元素
+属性名是:从左往右,从0开始依次递增,叫下标(索引)
+数组里面会默认有一个length属性,值是数组的长度
*/
var ary = [100,200,300,"zhangsan",{age:1}];
var res1 = ary[0];
var res2 = ary[ary.length-1];
console.log(ary);
//
var arr = [10,20,30];
console.log(arr[0],arr[1],arr[2]);//10,20,30
console.log(arr.length);//3
console.log(arr['length']);//3
console.log(arr[length]);//10
若有收获,就点个赞吧