【ECMAScript笔记四】自定义对象(创建,遍历)、内置对象(Math、Data、Array、String)、数据类型比较

10 自定义对象

  • JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
  • 前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的

概念: 一组无序的相关属性和方法的集合。所有的事物都是对象,例如:字符串,数组,数值,函数等。

组成:

  • 属性: 事物的特征,在对象中用属性表示(常用名词)
  • 方法: 事物的行为,在对象中用方法表示(常用动词)

为什么需要: 保存一个值时,可以使用变量。保存多个值时,可以使用数组,如果要保存一个人的完整信息,需要使用对象。

var arr=["张三丰","男",128,154];

使用数组表示一个人的完整信息不明确,不清楚128和154代表什么。

如果用对象表示:

person.name="张三丰";
person.sex="男";
person.age=128;
person.height=154;

10.1 创建对象方式

10.1.1 字面量

对象字面量:就是花括号{},里面包括对象的属性和方法。

var obj={
   
    name: "张三丰",    // 属性(键):属性值(值),
    age: 18,
    sex: "男",
    sayHello: function() {
       // 方法:匿名函数
        console.log("hello");
    }
}
  • 里面的属性方法采用键值对的形式

如何调用?

  • 调用对象的属性:对象名.属性名 / 对象名['属性名']

    console.log(obj.name);   // 张三丰
    console.log(obj['age']);   // 18
    
  • 调用对象的方法 :对象名.方法名

    console.log(obj.sayHello());   // hello
    

注意点:

  1. 变量和属性的区别:

变量 :单独声明并赋值,使用的时候直接写变量名,单独存在

属性 :在对象里面不需要声明,使用的时候必须是对象.属性,对象中存在

  1. 函数和方法的区别:

函数:单独声明,调用使用函数名(),单独存在

方法:在对象里面,调用使用对象.方法(),对象中存在

10.1.2 new object
var obj2 = new Object();  // 创建一个空对象
obj2.name = "张三丰";
obj2.age = 18;
obj2.sex = "男";
obj2.sayHello = function() {
    console.log("hello");
}
10.1.3 构造函数

前面两种创建对象的方式一次只能创建一个对象,创建多个对象时需要使用构造函数。

构造函数:一种特殊的函数,主要用来初始化对象,总与new运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。

// 创建类(class),泛指
function 构造函数名()
{
   
    this.属性 = 值;   // this为当前对象
    this.方法 = function() {
   }
}

// 调用构造函数,创建对象,特指
// 通过构造函数创建对象的过程也成`对象的实例化`
new 构造函数名();

案例:

// 构造函数首字母要大写
function Star(name, age, sex) {
      
    // 属性和方法前面必须要加`this`
    this.name=name;
    this.age=age;
    this.sex=sex;
    this.sing=function(sang) {
   
        console.log(sang);
    }
}
// 调用构造函数,必须使用`new`,不需要`return`就可以返回结果,结果是一个对象
var ldh = new Star("刘德华", 18, "男");
var zxy = new Star("张学友", 19, "男");
console.log(ldh.name);
ldh.sing('冰雨');

10.2 遍历对象

for(变量 in 对象) {
   
    
}
var zsf={
   
    name:"张三丰",
    age:18,
    sex:"男",
    sayHello:function() {
   
        console.log("hello");
    }
}
for(var k in zsf) {
   
        console.log(k);  // 输出 属性名
        console.log(obj[k])// 输出 属性值,注意这里的k是变量,不加引号
}

11 内置对象

  • 内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),帮助我们快速开发
  • JavaScript提供了多个内置对象:Math、Date、Array、string等

哪里查“内置对象的使用”文档:

  • MDN:https://developer.mozilla.org/zh-CN/

Mozilla开发者网络(MDN )提供了有关开放网络技术(Open Web )的信息,包括HTML、CSS、万维网、HTML5应用的API

  • W3C:https://www.w3school.com.cn/w3c/w3c_china.asp

11.1 Math 数学对象

Math是一个内置对象,它具有数学常数和函数的属性和方法。不是一个函数对象。

console.log(Math.PI);   // 圆周率

console.log(Math.max(1, 99, 3));   // 99
console.log(Math.max(1, 'pink'));    // NaN
console.log(Math.max());    // -Infinity

console.log(Math.abs(-1));    // 绝对值 1
console.log(Math.abs('-1'));    // 1 (隐式转换)
console.log(Math.abs('pink'));    // NaN

console.log(Math.floor(1.1));    // 向下取整 1
console.log(Math.floor(1.9));    // 1

console.log(Math.ceil(1.1));    // 向上取整 2
console.log(Math.ceil(1.9));    // 2

console.log(Math.round(1.1));    // 四舍五入 1
console.log(Math.round(1.5));    // 2
console.log(Math.round(-1.1));    // -1
console.log(Math.round(-1.5));    // -1(.5特殊,永远往大取)

console.log(Math.random());     // 随机数 0.2546988455547, 会返回一个随机数,范围为[0,1)
// 取两个数之间`[a, b]`的随机整数:
function getRandomInt(min, max) {
   
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomInt(1, 10));

// 1、随机点名
var arr =['张三', '张三丰', '张三疯子''李四','李思思];
console.log(arr[getRandomInt(0, 4)]);
console.log(arr[getRandomInt(0, arr.length - 1)]);

// 2、猜数字游戏
var random = getRandomInt(1, 10);
while (true) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waski

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值