4_js函数的进阶与常用对象的使用

day04_js函数的进阶与常用对象的使用

1. 作用域

  • 作用域:指的就是变量的有效范围

2. 什么是作用域链

  • 作用域链:在访问变量的时候是按照就近原则

3. 简单的理解类和对象

3.1 对象的相关概念
  • 从用户登录的角度理解为什么需要对象

  • 我们为什么要使用对象

    • 1.封装数据

    • 2.传递数据

    • 3.可以把一些通用的操作封装到对象中去。

    • .......

3.2 创建对象的三种方式
  • 方式一:

    var userZS = {//  左边表示对象的属性,右边表示对象的值name: "张三",gender: "男",birthyear: 19920918,addr: "老虎坡",isMarried:"否",salary: function() {return 15000;}
    }
    ​
    // 如果是通过对象封装的数据,可以直接通过.属性获取。
    console.log(userZS.name);
    console.log(userZS.isMarried);
    //对象中还可以封装函数。
    console.log(userZS.salary());
    //总结:对象的功能是非常强大的。

  • 方式二:

    • 利用new关键字创建对象:var zs = new Obect();

  • 扩展方式三:

    • 需求:我们要创建多个同类型的用户怎么实现呢?

    • 构造函数:就是用来构造(初始化)对象的。

      • this:谁调用有this的函数,那么this就代表谁。

        • zs.salary(15000) //this == 张三

        • lisi.salary(16000) // this == 李四

        • wangwu.salary(17000) // this == 王五

3.3 对象的遍历
  • 课堂案例:06.遍历对象的属性和方法.html

for (var k in obj) {console.log(k);      // 这里的 k 是属性名console.log(obj[k]); // 这里的 obj[k] 是属性值
}

4. JS的常用内置对象

4.1 什么是内置对象
  • 思考:为什么会有内置对象呢?

  • JavaScript 提供了多个内置对象:Math、 Date 、Array、String等

  • 课堂案例:07.封装工具类.html

  • 课堂案例:08.使用现有的工具类.html

4.2 怎么查看文档
  • JavaScript 标准内置对象 - JavaScript | MDN

4.3 Math对象
  • Math对象,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。

属性、方法名功能
Math.PI圆周率
Math.floor()向下取整
Math.ceil()向上取整
Math.round()四舍五入版 就近取整 注意 -3.5 结果是 -3
Math.abs()绝对值
Math.max()/Math.min()求最大和最小值
Math.random()获取范围在[0,1)内的随机值
4.4 日期对象
  • 创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。

  • 使用Date实例化日期对象

    new Date(); //用过了
    new Date(value);
    new Date(dateString); //用过了   var date2 = new Date("2022-09-22 16:22:15");
    new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); 

    • 时间戳:以整数值来表示时间(比如2022-09-26 10:08:27 就对应 1664158107981)

    • 计算规则:表示自 1970 年 1 月 1 日 00:00:00 到当前时间的毫秒数

    • Date.now() :返回当前系统的时间戳

    • Date.parse("Mon Sep 26 2022 10:16:21 GMT+0800") :将字符串格式的日期转换为时间戳

5 数组相关对象

5.1 检测是否为数组
  • instanceof运算符

    • instanceof可以判断一个对象是否是某个构造函数的实例

      function Car(make, model, year) {this.make = make;this.model = model;this.year = year;
      }
      const auto = new Car('Honda', 'Accord', 1998);
      ​
      console.log(auto instanceof Car);
      // expected output: true
      ​
      console.log(auto instanceof Object);
      // expected output: true

  • Array.isArray()

    • Array.isArray() 用于确定传递的值是否是一个 Array

      Array.isArray([1, 2, 3]);  // true
      Array.isArray({foo: 123}); // false
      Array.isArray('foobar');   // false
      Array.isArray(undefined);  // false
      当检测 Array 实例时,Array.isArray 优于 instanceof

5.2 数组元素的添加和删除
    • push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

    • pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。

    • shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

    • unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度

    • 为什么这些方法都是操作的头和尾?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React + valtio 响应式状态管理

Valtio 是一个很轻量级的响应式状态管理库。valtio 让数据管理在 React 和原生 JS (Vanilla) 中变得更加简单的一个库,它类似于 Vue 的数据驱动视图的理念,使用外部状态代理去驱动 React 视图来更新。 一、状态管理库 dispatch 流派(单向数据流-中心化管…

Flink 运行时[Runtime] 整体架构

一、基本组件栈 在Flink整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。从下图中可以看出整个Flink的架构体系基本上可以分为三层,由上往下依次是 …

MT6739/MTK6739安卓核心板规格参数_MTK平台核心板定制

安卓核心板采用联发科 MT6739 平台开发设计,搭载开放的智能 Android 操作系统。它集成 GPU PowerVR GE8100 570MHz,集成了 BASEBAND、UMCP、PMU 等核心器件,支持 2.4G5G 双频 WIFI(可支持 1*1 MIMO)、BLUETOOTH 近距离无线传输技术&#xff0…

绩效面谈-大公司提高绩效的必杀技

绩效面谈是一种人力资源管理工具,旨在评估员工绩效并为其提供反馈。其意义包括: 为提高绩效制定具体的目标和计划。通过与员工讨论绩效表现,管理人员和员工可以确定明确的目标和方向,以实现更高的绩效水平。 帮助员工理解工作环…

【组合数学】Pólya 计数理论

目录 1. 引言2. 置换群3. Burnside 引理共轭类k 不动置换类Burnside 引理 4. Plya 计数定理4.1 对点着色问题4.2 对面着色问题4.3 重复球放盒子 1. 引言 Plya 计数理论是数学中的一个分支,主要研究的是对称性在组合计数问题中的应用。该理论以匈牙利数学家乔治波利…

关于使用libnet时性能下降的问题分析

Libnet是一个用于构建和注入网络数据包的便携式框架。它提供了在IP层和链路层创建数据包的功能,以及一系列辅助和补充功能。Libnet非常适合编写网络工具和网络测试代码。一些使用libnet的项目包括arping、ettercap、ipguard、isic、nemesis、packit、tcptraceroute和…

服务器加装了14T硬盘,显示不出来,戴尔R730阵列卡配置阵列RAID0

戴尔H730阵列卡配置阵列RAID0,1,5,10_哔哩哔哩_bilibili 然后依据下面的视频进行操作,ctrlr,选raid0 戴尔H730阵列卡配置阵列RAID0,1,5,10_哔哩哔哩_bilibili

myspl左外连

myspl使用左外连接查询所有学生的姓名及选修的课程名称和分数,没有选课的学生姓 名也要显示。 假设我们有两个表,一个是学生表(students),包含学生的学号和姓名,另一个是选课表(courses),包含学生的学号、课程名称和分…

拾捌[18],ROI区域,函数ReduceDomain/WriteRegion/ReadRegion

函数ReduceDomain 函数功能 图像区域定义域缩减,减小图像处理区域以缩短时间,结果图的Row/Column和原图一致。 C形式 LIntExport void ReduceDomain( const HObject& Image, const HObject& Region, HObject* ImageReduced);//参数1:输入图…

【项目问题解决】% sql注入问题

目录 【项目问题解决】% sql注入问题 1.问题描述2.问题原因3.解决思路4.解决方案1.前端限制传入特殊字符2.后端拦截特殊字符-正则表达式3.后端拦截特殊字符-拦截器 5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 在处理接口入参的一些sql注入问题,虽然通过M…

Ubuntu22.04安装python2

Ubuntu 20.04是继Ubuntu 18.04 LTS之后的下一个长期支持(LTS)版本,从Ubuntu 20.04开始系统不再预装python2。 如果我们有一些老旧的代码需要运行,可以在新版的Ubuntu系统上自行安装python2。 安装命令: sudo apt install python2查看pytho…

《Python Advanced Programming + Design Patterns + Clean Code》

清洁代码 — 学习如何编写可读、可理解且可维护的代码 高级Python编程知识 Python之常用设计模式 Advanced Programming装饰器 decorators生成器 & 迭代器with 上下文管理器面向对象Mixin 模式反射机制并发编程 Design Patterns设计模式分类简单工厂模式工厂模式 √抽象工厂…

Java 多线程执行任务

需求: 通过多线程 调用第三方的接口,处理数据,并得到返回值: main方法测试: package auto.thread;import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.CopyOn…

2024年软件测试工程师如何从功能测试转成自动化测试?

前言 接触了太多测试同行&#xff0c;由于多数同行之前一直做手工测试&#xff0c;现在很迫切希望做[<u>自动化测试</u>](javascript:;)&#xff0c;其中不乏工作5年以上的同行。 从事软件自动化测试已经近十年&#xff0c;接触过底层服务端、API 、Web、APP、H5…

【lesson20】MySQL复合查询(1)基本查询回顾、多表查询和自连接

文章目录 基本查询回顾建表插入数据实例 多表查询建表插入数据实例 自连接建表插入数据实例 基本查询回顾 建表 插入数据 实例 查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还要满足他们的姓名首字母为大写的J 按照部门号升序而雇员的工资降序排序 使用年薪进行降…

自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了Selenium的三大组件&#xff0c;其中介绍了WebDriver是最重要的组件。在这里&#xff0c;我们将看到WebDriver常用的API/方法&#xff08;注&#xff1a;这里使用Python语言来进行演示&#xff09;。 1. WebDriver创建 打开VSCode&#xff0c;我们首先引…

亚马逊关键词收录逻辑是什么?亚马逊关键词收录规则——站斧浏览器

亚马逊关键词收录逻辑是什么&#xff1f; 亚马逊收录系统是静态相关性和动态相关性的结合&#xff0c;也就是listing埋词与广告或其他非常规手段的干预。发生顺序及逻辑如下&#xff1a; 第一步&#xff1a;亚马逊首先会进行静态收录。通过SEO搜索引擎来识别卖家的产品链接&a…

《每天一分钟学习C语言·六》

1、 1字节&#xff08;Byte&#xff09;8位&#xff0c;1KB1024字节&#xff0c;1M1024KB&#xff0c;1G1024MB 2、 char ch A; printf(“ch %d\n”, ch);ch为65 这里是ASCII码转换 3、 scanf("%d", &i); //一般scanf直接加输入控制符 scanf("m%d&qu…

java练习题之多态练习

1:关于多态描述错误的是(D) A. 父类型的引用指向不同的子类对象 B. 用引用调用方法&#xff0c;只能调用引用中声明的方法 C. 如果子类覆盖了父类中方法&#xff0c;则调用子类覆盖后的方法 D. 子类对象类型会随着引用类型的改变而改变 2:class Super{ public void m1(){}…

Python 输入输出, 标识符, import(保留字关键字) ,注释 , 缩进

1 Python简介输入print()标识符import关键字保留字(关键字)注释缩进 Python简介 python是一门解释性语言 解释性语言的特点:它不像java c一样先编译后执行,它是直接每一行的去执行,所以遇见错误时,它会把错误之前的执行完 输入print() print() 是一个让计算机在屏幕上进行输…