当前位置: 首页 > news >正文

JavaScript学习总结

  前言

        JavaScript的学习花的时间比较长,如何进行正确的学习?今天进行总结与整理。

首先,明确JavaScript是什么?它的结构框架是什么,有哪些操作与组成部分。

其次,通过案例实践,清楚达到什么效果,用到哪些知识内容。

然后,边实践案例的时候,边总结知识点,对比联系与区别。

最后,通过案例实践,融合自己的理解总结思维导图。

一、JavaScript

1.是什么?

        JavaScript 是一种高级的、解释执行的编程语言,主要用于构建网页和应用的交互界面。它允许开发者实现网页的动态效果和响应用户行为,同时也被用于服务器端编程、移动应用开发等多种平台。

2.如何实现

(1)基础的语法知识

(2)BOM(Browse Object Model)——浏览器对象模型字节顺序标记

(3)DOM(Documen Object Model)——文档对象模型

二、基础语法

1.变量的三种声明方式

var

let

const

作用域

函数作用域或全局作用域(如果在函数外声明)

具有块级作用域(block scope)

块级作用域

变量提升

发生,提升到顶部

发生,不会被初始化(在代码执行声明之前,不可访问)

发生,提升到顶部,(在代码执行声明之前,不可访问—“暂时性死区”)

重复声明

重复声明同一个变量

在同一个作用域中,let不允许重新声明已经存在的变量。

在相同作用域内,不允许重复声明变量。

重新赋值

可以

该变量不能重复声明

该变量不能被重新赋值,它们必须在声明时初始化,并且声明后值是固定的。但是,如果const变量指向的是一个对象或数组,那么对象或数组的内容是可以被修改的。

2.对象与函数

特性

函数 (Function)

对象 (Object)

定义

使用 function 关键字或函数表达式定义

使用对象字面量或 new Object() 构造函数定义

本质

可执行的代码块,拥有调用执行的能力

键值对的集合,存储数据和可能包含方法(函数)

属性

可以拥有属性,如 name, length 等

可以拥有任意数量的自定义属性和方法

方法

可以拥有方法,即属性值为函数

可以拥有方法,即属性值为函数

调用

使用圆括号 ()

调用

通过点符号或方括号访问属性和方法

原型

拥有一个 prototype 属性,用于原型链继承

拥有一个 prototype 属性,用于原型链继承

构造函数

可以用作构造函数,使用 new 关键字创建新实例

可以用作构造函数,使用 new 关键字创建新实例

instanceof

函数的实例会返回 true 当使用 instanceof 操作符检查该函数

对象的实例会返回 true 当使用 instanceof 操作符检查该对象的构造函数

this

在函数调用时,this 指向调用它的上下文

在对象方法中,this 指向该对象

闭包

可以形成闭包,捕获外部函数的变量

不直接形成闭包,但可以包含形成闭包的函数

箭头函数

不绑定自己的 this,arguments,super 或 new.target

不适用

词法作用域

有自己的词法作用域

不直接拥有词法作用域,但可以包含拥有词法作用域的函数

3、this是什么?如何使用?

应用场景

对象方法

构造函数

事件

指向

该方法的对象,严格情况下,this是undefined

指向新创建的对象,构造函数的功能是初始化新对象

接收事件的元素,触发事件的DOM元素

改变this指向

call

apply

bind

传递参数

接受参数列表

接受一个参数数组

作用

改变函数执行时this的指向

返回一个新的函数,并且函数的this永远绑定为指定的对象。

使用场景

this 指向

全局作用域

在非严格模式下指向 window,严格模式下是 undefined

对象方法

指向调用该方法的对象

构造函数

指向新创建的对象

箭头函数

继承自定义时的外部作用域 this

事件处理器

指向触发事件的 DOM 元素

call/apply

显式指定的 this 值

bind

返回绑定了指定 this 的新函数

三、什么是DOM与BOM

DOM

BOM

是什么

Documen Object Model——文档对象模型

Browse Object Model——浏览器对象模型字节顺序标记

作用

用来获取或设置文档中标签的属性

用来获取或设置浏览器的属性、行为

特点

树状结构,文档中的元素被表示为节点,并按照树状结构进行组织

以浏览器窗口为中心,包括一些与浏览器窗口相关的对象

where

文档内容的操作和交互

浏览器窗口和浏览器的交互

how

HTML 文档的层次结构被抽象为一个 DOM 树,这个树结构的每一个子节点表示 HTML 文档中的不同内容

在网页中定义的任何对象、变量和函数,都以window作为其global对象。BOM的核心window对象,而window对象又具有双重角色,它既是通过 js 访问浏览器窗口的一个接口,又是一个**Global(全局)对象**。

why

为了操作文档出现的接口

为了控制浏览器的行为而出现的接口

四、JScript与javascript

JScript

JavaScript

是什么

微软开发的一种脚本语言,主要用于扩展微软的Internet Explorer浏览器的功能

一种被广泛支持的脚本语言,用于实现网页的动态效果和交互功能

设计理念

满足特定平台(如Windows)的需求

实现跨平台的兼容性

执行环境

主要在微软的Internet Explorer浏览器中运行

跨平台的脚本语言,被主流浏览器支持,也能在服务器端执行

支持功能与生态环境

用于特定的微软平台,它包含一些专为这些平台设计的特有功能和对象,如对ActiveX控件的支持

一系列基于JavaScript的框架和库被开发出来,拥有一个更为广泛和丰富的生态系统

适用环境

Windows操作系统紧密相关,并且在Internet Explorer浏览器中得到广泛支持

常用于跨平台的Web应用程序开发,并且在各种浏览器中都有很好的兼容性。

区别

微软开发的一种脚本语言

由Netscape公司开发

JScript对COM对象(Component Object Model)的支持更好,这使得开发人员可以与Windows系统的其他组件进行交互

JavaScript则提供了丰富的库和框架,用于构建交互式用户界面和实现各种功能。

               

五、高级使用

原型链的四种继承方式

继承方式

是什么

怎么用

优点

缺点

原型链继承

  1. 定义父类构造函数
  2. 在父类构造函数上添加方法
  3. 定义子类构造函数
  4. 创建父类实例对象,并且作为子类构造函数的原型对象
  5. 在子类原型对象上添加内容

包含引用类型值的原型属性会被所有实例共享

构造函数继承

子类中执行父类型构造函数

call或apply方法

原型的属性不会被共享

不能继承父类prototype上的属性

组合继承=原型链继承+构造函数继承

  1. 原型属性不会被共享
  2. 可以继承父类的原型链上的属性和方法

调用了两次Parent()

他在child的prototype上添加了父类的属性和方法

寄生组合继承

Object.create(),创建一个空的对象,这个对象会指定prototype

  1. 原型属性不会被共享
  2. 可以继承父类的原型链上的属性和方法
  3. 调用了1次Parent()不会在child的prototype上添加了父类的属性和方法

Child.prototype的原始属性和方法会丢失

六、思维导图

tips:重要的还是多实践!!!

附上表单的相关练习与应用

相关文章:

JavaScript学习总结

前言 JavaScript的学习花的时间比较长,如何进行正确的学习?今天进行总结与整理。 首先,明确JavaScript是什么?它的结构框架是什么,有哪些操作与组成部分。 其次,通过案例实践,清楚达到什么效果…...

Python 3 教程第22篇(数据结构)

Python3 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构。 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 以下是 Python 中列表的方…...

AI时代的软件工程:迎接LLM-DevOps的新纪元

在科技日新月异的今天,GPT的问世无疑为各行各业带来了一场深刻的变革,而软件工程领域更是首当其冲,正式迈入了软件工程3.0的新纪元。2024年,作为软件工程3.0的元年,伴随着软件工程3.0宣言的震撼发布,一个全…...

linux安全管理-系统环境安全

1 历史命令设置 1、检查内容 检查操作系统的历史命令设置。 2、配置要求 建议操作系统的历史命令设置。 3、配置方法 编辑/etc/profile 文件,配置保留历史命令的条数 HISTSIZE 和保留历史命令的记录文件大小 HISTFILESIZE,这两个都设置为 5。 配置方法如…...

MindAgent部署(进行中.....)

第一步:pip install -r requirements.txt 问题:如下:就是我的服务器,无法访问github Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-error python setup.py egg_info did not run successfully.│ exi…...

【JavaEE初阶 — 网络编程】TCP流套接字编程

TCP流套接字编程 1. TCP & UDP 的区别 TCP 的核心特点是面向字节流,读写数据的基本单位是字节 byte 2 API介绍 2.1 ServerSocket 定义 ServerSocket 是创建 TCP 服务端 Socket 的API。 构造方法 方法签名 方法说明 ServerS…...

《气候变化研究进展》

《气候变化研究进展》设有气候系统变化、气候变化影响、气候变化适应、温室气体排放、对策论坛、简讯等栏目,其内容包括:国内外气候变化研究的最新成果与进展,以及与气候变化有关的交叉学科,如地球科学、生态与环境科学、人文与社…...

D2545电动工具调速专用控制电路芯片介绍【青牛科技】

概述: D2545 是一块频率、占空比可调的脉冲控制电路。可通过调节外接的电阻和电容大小来控制输出频率和占空比,达到控制电机转速的作用。 主要特点: ● 电源电压范围宽 ● 占空比可调 ● 静态功耗小 ● 抗干扰能力强 应用: ● …...

Unity 2020、2021、2022、2023、6000下载安装

Unity 2020、2021、2022、2023、6000 下载安装 以Unity 6000.0.24fc1下载安装为例: 打开 https://unity.cn/ 优三缔 官方网站; 点击【产品列表】→点击【查看更多】→选择自己需要的版本→点【开始使用】 点击【从Unity Hub下载】 以Windows为例&am…...

33 基于单片机的智能窗帘控制系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DHT11温湿度传感器检测温湿度,滑动变阻器连接ADC0832数模转换器转换模拟,光敏传感器,采用GP2D12红外传感器,通过LCD1602显示屏显示…...

【CSS in Depth 2 精译_063】10.2 深入理解 CSS 容器查询中的容器

当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 10.1.1 容器尺寸查询的用法 10.2 深入理解容器 ✔️ 10.2.1 容器的类型 ✔️10.2.2 容器的名称 ✔️10.2.3 容器与模块化 CSS ✔️ 10.3…...

记录一次 k8s 节点内存不足的排查过程

背景:前端服务一直报404,查看k8s日志,没发现报错,但是发现pods多次重启。 排查过程: 查看pods日志,发现日志进不去。 kubectrl logs -f -n weave pod-name --tail 100查看pod describe kubectl describ…...

探索天空中的“名字”——用Landsat影像记录你的名字形状!

大家好!今天我发现了一个特别有趣的工具——NASA官网上有一个功能,允许你输入自己的名字,然后它会根据Landsat卫星影像显示出与你名字形状相符的地形图。是不是很酷?🎉 🌍 Landsat影像的神奇之处Landsat是N…...

QT6学习第四天 感受QT的文件编译

QT6学习第四天 感受QT的文件编译 使用纯代码编写程序新建工程 使用其他编辑器纯代码编写程序并在命令行运行使用 .ui 表单文件生成界面使用自定义 C 窗口类使用现成的QT Designer界面类 使用纯代码编写程序 我们知道QT Creator中可以用拖拽的方式在 .ui 文件上布局&#xff0c…...

透视投影(Perspective projection)与等距圆柱投影(Equirectangular projection)

一、透视投影 1.方法概述 Perspective projection(透视投影)是一种模拟人眼观察三维空间物体时的视觉效果的投影方法。它通过模拟观察者从一个特定视点观察三维场景的方式来创建二维图像。在透视投影中,远处的物体看起来比近处的物体小&…...

5 Java字符串操作

字符串操作 1、String类1.1 声明字符串1.2 创建字符串 1.3 字符串连接 /连接字符串连接其他数据类型 1.4 提取字符串信息获取字符串长度length()获取指定位置的字符 charAt()获取子字符串索引位置 indexOf()判断字符串首尾内容 startsWith()/endsWith()获取字符数组 toCharArra…...

【C++习题】17.二分查找算法_二分查找

文章目录 二分查找算法简介题目链接:题目描述:解法C 算法代码:图解总结朴素二分模板 二分查找算法简介 特点: 二分查找算法,是最恶心,细节最多,最容易写出死循环的算法。(而且非常难…...

Spring Boot英语知识网站:架构与开发

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...

Unity ShaderLab 实现网格爆炸

实现思路: 沿着3D物体每个面的法线,将面偏移一定的位置。 Shader Graph实现如下: Shader Lab 实现如下: Shader "Unlit/MeshExplode" {Properties{_MainTex ("Texture", 2D) "white" {}_Distan…...

2024/11/28学习日志

为了更好地记录并反思自己的学习状况,将每日学习的内容、时长、心得等记录于此日志。 于9月3日开始记录,计划每日记录,希望至少能够坚持一个学期。 学习内容: 数据结构: 拓扑排序。关键路径。 马原: 马…...

安卓玩机神器:无需Root的“搞机工具箱”全功能解析与实战指南

1. 安卓玩机新选择:搞机工具箱为何成为神器? 最近在折腾安卓手机时,发现了一个宝藏工具——搞机工具箱。作为一个长期和安卓系统打交道的玩家,我试过各种需要Root权限的工具,但这款软件最让我惊喜的是它完全不需要Root…...

SDMatte在电商场景落地:商品主图自动去背景+透明PNG生成完整工作流

SDMatte在电商场景落地:商品主图自动去背景透明PNG生成完整工作流 1. 电商场景中的图像处理痛点 在电商运营中,商品主图的质量直接影响转化率。传统处理方式面临三大难题: 人工成本高:专业设计师处理一张图平均耗时15-30分钟边…...

DownKyi架构深度解析:高效B站视频下载工具的技术实现与实战指南

DownKyi架构深度解析:高效B站视频下载工具的技术实现与实战指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印…...

【SpringBoot 】dynamic 动态数据源配置连接池(转)

前言 在复杂的业务场景中,我们经常需要使用多数据源来满足不同的数据访问需求。Dynamic Datasource 为我们提供了一种灵活切换不同数据源的解决方案。但是多数据源配置连接池 以及说明文档都是收费的。 本篇博文将详细介绍如何配置和优化 Dynamic Datasource 的连接…...

Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据

Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据 如果你用过Guohua Diffusion这类图像生成工具,可能会遇到一个头疼的问题:生成的图片越来越多,管理起来越来越乱。今天想找上周生成的那张“赛博朋克风格的城市夜…...

基于springboot美食分享平台设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

StarWind V2V Image Converter实战:轻松将IMG镜像转换为VMware VMDK格式

1. 为什么需要IMG转VMDK? 虚拟机镜像格式转换是IT运维中的常见需求。我遇到过不少这样的情况:手头有一个现成的IMG格式镜像文件,但当前虚拟化环境用的是VMware。这时候就需要把IMG转换成VMware原生支持的VMDK格式。 IMG是一种通用的磁盘镜像格…...

第12课:从 SPI 环路、CAN 通信到 SD 与 eMMC 存储实战

本节路线图 先把三条主线分开:控制总 → SPI环路测试:先把时序 → CAN:换一条总线,世界 小猫提醒 这节有分区、烧录或删除类操作,先确认盘符和路径,再按回车。 如果说上一课的关键词是“事件、时间和系统能力”,那这一课的关键词就是“总线、协议和数据落地”。 我们要…...

Spatial Audio(空间音频)与多声道环绕声:从5.1到7.1的沉浸式体验升级

1. 从立体声到环绕声:音频技术的进化之路 记得我第一次在朋友家体验5.1声道家庭影院时,那种子弹从耳边呼啸而过的感觉让我彻底震撼了。这完全颠覆了我对"好音质"的认知——原来声音可以如此立体、如此真实。要理解现代的空间音频技术&#xf…...

Linux驱动开发实战:从设备树到内核调试全解析

Linux驱动工程师实战经验分享&#xff1a;从入门到进阶的技术要点解析1. 设备树系统的深入理解1.1 设备树的基本概念在Linux驱动开发初期&#xff0c;大多数工程师都是从最简单的模块开发开始。典型的入门流程包括&#xff1a;#include <linux/module.h> #include <li…...