<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
/*
js中的数据类型
- string 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- undefined 未定义
- 以上五种属于基本数据类型
- object 对象
*/
/*
基本数据类型都是单一的值,值和值之间无联系,不能成为一个整体
对象属于一种复合的数据类型,在对象中保存多个不同数据类型的属性
对象的分类
1.内建对象
- 由ES标准中定义的对象,在任何的ES的实现中都可以使用
- 如 Math string
2.宿主对象
- 由JS的运行环境提供的对象,目前来讲主要有浏览器提供的对象
- 比如 BOM DOM console.log() document.write()
3.自定义对象
- 开发人员自己创建的对象
*/
//创建对象
/*
使用new关键字调用的函数,是构造函数constructor
构造函数是专门用来创建对象的函数
*/
var obj = new Object();//只是一个空对象
//添加一个name属性
obj.name = "孙悟空";
//添加一个gender属性
obj.gender = "男";
//添加一个age属性
obj.age = 18;
console.log(obj);
/*
读取对象中的属性
语法:对象.属性
如果读取对象中没有的属性,不会报错而会返回undefined
*/
console.log(obj.gender);//男
/*
修改对象的属性值
语法:对象.属性名 = 新值
*/
obj.name = "tom";
console.log(obj.name);
/*
删除对象的属性
语法:delete 对象.属性
*/
delete obj.name;
console.log(obj);//返回值中无name属性
/*
像对象中添加属性
属性名“
- 对象的属性名不强制要求遵守标识符的规范
什么乱七八糟的名字都可以使用
- 但我们使用还是尽量按照标识符规范去做
- C语言变量名开头必须是字母或下划线,不能是数字
- 不可以是关键字
- 区分大小写
- 不能有空格
*/
/*
如果要使用特殊的属性名,如数字等,不能采用.方式来操作
可以采用另一种方式:
语法:对象["属性名"]=属性值
使用[]这种形式去操作属性,更加灵活
在[]中可以直接传递一个变量,这样变量值就会始终读取那个属性
*/
obj["123"] = 789;
obj["456"] = 456;
//输出时不可以按照.的形式输出,也应按照[]的形式输出
console.log(obj["123"]);
var n = "123";
console.log(obj[n]);
console.log(obj["123"]);//二者绑定输出都是789
//此时可以不用修改属性值,直接将n值改变而不改变
//实际就是套娃,将属性名变成可变化的,而不像.的形式的静态变量
n = 456;
console.log(obj[n]);//此时返回属性名456的值,即456
/*
属性值
JS对象的属性值,可以是任意的数据类型
甚至也可以是一个对象,也就是对象里面套对象,括号里面套括号
*/
var obj2 = new Object();
obj2.name = "猪八戒";
//将obj2设置为obj的属性
obj.test = obj2;
console.log(obj);//括号里面套括号,对象里面套对象
console.log(obj.test);//设置的test的属性
console.log(obj.test.name);//test的name属性值
/*
in 运算符
- 检查一个对象内有没有该属性
有则返回true 无则返回false
- 语法:
"属性名" in 对象
*/
console.log("test2" in obj);
JS (3)
最新推荐文章于 2024-08-22 14:32:34 发布