网页的血液——javascript

1.简介

         网络开发唯一可选语言, 增加网页动态性与交互性,服务端开发, Nodejs,可以进行数据库文件读写

2.引入

         html内部使用script标签,在script内部直接编写js
         在外部js文件中编写,在script内部通过script的src属性引入外部js

3.变量声明   

const
            声明常量
            必须赋值
            不能更改

let
        声明局部变量
        只能声明一次
        语句块外失效
        没有赋值之前不能访问

 var
        声明全局变量
        可以声明多次
        自带变量提升效果
        没有声明就能访问

4.数据类型

5种基本类型可以使用typeof

数字:Number
字符串:String
布尔值: Bool
空值:Null
            使用typeof返回类型为object
            清除内存

未定义:Undefined
            声明一个变量,但是未赋值

2种复杂类型可以使用instanceof检测类型

数组
        相当于Python中的列表,Array, 逻辑运算符为真

对象
        相当于Python中的字典,Object,逻辑运算符为真

5.运算符    

算数运算法:+ - * / %
赋值运算法:= += -= *= /= %=
        自增:先返回再自加
                        a++
                        a--
                   先自加再返回
                        ++a
                        --a

比较运算法:> >= < <= == !=
        判等
            ==:只比较值
            ===:先比较值,再比较类型

逻辑运算法
        &&
            左侧为真,返回右侧
            左侧为假,返回左侧
        ||
            左侧为真,返回左侧
            左侧为假,返回右侧
        !
            非假为真,非真为假;结果只有true与false

流程结构
        顺序结构:从上向下依次执行
        分支结构
            if(){}
            if(){}else{}
            if(){}else if(){}else{}
        循环结构
            for
            while
                先判断再执行
            doWhile
                先执行再判断

6.函数

    概念
        function:定义关键字
        函数名:小驼峰
        形参:占位符,声明函数使用
        实参:实际值,调用函数使用
        返回值:只有一个
    匿名函数
        没有函数名,不能单独存在
        使用
            赋予一个变量
            函数形参
            对象的键
        案例
            setTimeOut
                clear  TimeOut
                    清除延迟
                开启延迟,延迟1秒执行一次
            setInterval
                clear Interval
                    清除计时
                开启计时,每隔1秒执行一次
    递归函数
        自己调用自己
        递归效率低

7.数据常用操作

1.字符串

         length:长度
        遍历:下标,0,length-1
        cahrAt:根据索引找字符
        indexOf:根据字符返回索引,找不到返回-1
        concat:字符串拼接
        endsWith:结尾
        startWith:开头
        replace:替换
        match:匹配返回对象
        search:返回索引
        slice:切片,不包含stop
        split:切割,支持空字符切割
        toLowerCase:转小写
        toUpperCas:转大写
        trim:剔除空格

2.数组

        length:长度
        遍历: 0,length-1
        concat:数组连接,不影响原始数组
        conclude:包含
        indexOf:返回索引,找不到返回-1
        join:将元素使用字符拼接
        pop:删除末尾
        push:末尾插入
        shift:删除开头
        unshift:开头插入
        sort:排序,影响原始数组
        reverse:逆序,影响原始数组
        slice:切片,不影响原始数组
        splice
            start:操作位置
            deleteCount:删除个数
            items: 插入内容,可以不插入
        高阶函数:形参是匿名函数,第一个参数是值,第二个参数是索引
            forEach:遍历,没有返回值
            every:每一个都是true结果才返回true 
            some:每一个都是false结果才返回false 
            find:返回索引, 只返回一个
            filter: 过滤,返回符合条件的
            map: 映射,一对一返回

3. 对象

        键值对:类似Python字典,值可以是任意数据类型
        Object keys(obj):获取obj的所有键
        JSON.stringify:序列化
        JSON.parse:反序列化

4.BOM

        window:全局对象下的属性
        history
            back:回退
            forward:前进
            go(n)
                正值 前进
                负值 后退
                0 刷新
        location
            href:当前地址
            protocol:协议
            port:端口
            pathname:虚拟路径
            search:查询参数
            hash:路由模式,锚点
            reload():刷新
        navigator:浏览器身份userAgent

5. DOM:文档对象模型

            通过js来操作页面元素
 1.页面对象的获取
            querySelector
                找到匹配的第一个
            querySelectorAll
                找到所有
                    返回类似数组
                    可以使用下标获取单个
            document.query*
                搜索整个文档
            target.query*
                在target内部去找
2.绑定事件
            鼠标事件
                onclick
                onmouse
                    enter
                    leave
                    down
                    up
                    move
            表单元素
                onfuces:聚焦
                onblur:失焦
                oninput:输入内容改变
                onkeyup:键盘抬起
3.获取、修改
            内容
                innerText:不考虑标签
                innerHTML:可以识别标签
            属性
                非类名
                    href
                    title
                    id
                    ......
                    对象.属性名
                类名
                    对象.classList
                        add:添加
                        remove:删除
                        contains:是否有
                        toggle:有就删,没有就添加
         样式
                设置
                    都是设置行内样式
                     .style.样式属性名=
                获取
                    行内样式可以直接通过style.样式属性名获取
                    内部样式表以及外部样式表
                        需要通过getComputedStyle(obj).样式属性
        相关元素
            parentElement:父节点
            children:所有直接子节点,可以使用下标
            nextElementSibling:下一个相邻
            previoiusElementSibling:上一个相邻
        元素的创建于删除
            createElement:创建元素
            appendChild:将元素插入文档
            remove:删除元素

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

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

相关文章

JJJ:linux系统中第一个进程

以linux4.19内核linux系统中第一个进程。 执行shell指令 ps -ef 结果如下&#xff1a; xxxxxx-virtual-machine:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 20:55 ? 00:00:02 /sbin/init splash root …

【机器学习300问】58、什么是词袋模型和N-gram模型?

词袋模型&#xff08;Bag of Words, BoW&#xff09;和N-gram模型主要用于早期的自然语言处理任务&#xff0c;上文中我介绍了机器是如何读懂文本的四个阶段&#xff0c;这篇文章带大家来看看在不同阶段中会用到的两个模型——词袋模型和N-gram模型。如果没有读过我之前的文章&…

C语言二进制常用逻辑运算符介绍与使用

在C语言中&#xff0c;二进制常用的逻辑运算符包括与&#xff08;AND&#xff09;、或&#xff08;OR&#xff09;、非&#xff08;NOT&#xff09;&#xff0c;以及异或&#xff08;XOR&#xff09;。以下是它们的介绍和使用方法&#xff1a; 与&#xff08;AND&#xff09;&a…

Nodejs 第六十章(http缓存)

HTTP缓存 HTTP 缓存主要分为两大类&#xff1a;强缓存和协商缓存。这两种缓存都通过 HTTP 响应头来控制&#xff0c;目的是提高网站性能。 强缓存介绍 强缓存之后则不需要向服务器发送请求&#xff0c;而是从浏览器缓存读取分为&#xff08;内存缓存&#xff09;| &#xff…

HarmonyOS 应用开发之FA模型与Stage模型应用组件

应用配置文件概述&#xff08;FA模型&#xff09; 每个应用项目必须在项目的代码目录下加入配置文件&#xff0c;这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。 应用配置文件需申明以下内容&#xff1a; 应用的软件Bundle名称&#xff0c;应用的开发…

《Long-CLIP: Unlocking the Long-Text Capability of CLIP》

论文:https://arxiv.org/pdf/2403.15378.pdf源码:https://github.com/beichenzbc/Long-CLIP 导读 CLIP(Contrastive Language–Image Pre-training),这个由 OpenAI 团队开源的多模态预训练模型,它通过对比学习的方式,同时学习图像和文本的表示,从而实现在没有针对特定…

坐标变换矩阵之平移-opencv

平移矩阵m&#xff0c;平移向量(tx,ty,tz) double tx10.2; double ty0.0; double tz0.0; cv::Mat m cv::Mat::eye(4, 4, CV_64FC1);//单位矩阵 m.at<double>(0,3)tx; m.at<double>(1,3)ty; m.at<double>(2,3)tz;齐次点p(1,0,0,1)&#xff0c; cv::Mat p(4…

ESD保护二极管ESD9B3.3ST5G 以更小的空间实现强大的保护 车规级TVS二极管更给力

什么是汽车级TVS二极管&#xff1f; TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护&#xff0c;防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中&#xff0c;由于车辆启…

SEO文章写作器,批量写作原创SEO收录文章

在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了网站获得流量和曝光度的关键手段之一。而在SEO领域中&#xff0c;内容的质量和原创性是至关重要的。为了应对不断增长的内容需求&#xff0c;越来越多的人开始转向AI写作生成器&#xff0c;这些…

ChatGPT如何升级为GPT-4在国内

通过 WildCard 可以把ChatGPT升级为GPT-4 地址 1: 2155 Bailey Hill Rd 城市: Eugene 邮编: 97405 州: Oregon ChatGPT Plus/Team 一键升级&#xff0c;几分钟即可自动升级到 ChatGPT Plus。 选择我的邮箱账号符合要求 复制这个页面的链接即可 复制上面的link 到请在…

32-4 APP渗透 - APP渗透与防御

一、APP渗透测试流程 准备阶段: 确定安全测试的范围,包括受测方的测试目标和敏感数据。获取被测单位的书面盖章渗透测试授权,确保合法性和透明度。(重要)信息搜集: 收集关于APP的环境、业务用例和架构等信息,了解目标系统的特点和运行环境。可以使用各种信息收集工具和技术…

通俗易懂:什么是Java虚拟机(JVM)?它的主要作用是什么?

Java虚拟机&#xff08;Java Virtual Machine, JVM&#xff09;是一种软件实现的抽象计算机&#xff0c;它负责执行Java字节码&#xff08;Bytecode&#xff09;。Java程序并不是直接在物理计算机上运行&#xff0c;而是先由Java编译器将源代码编译成与平台无关的字节码&#x…

基于springboot实现房产销售系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房产销售系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于房产销售系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了房产销售系统…

CI/CD实战-jenkins结合ansible 7

配置主机环境 在jenkins上断开并删除docker1节点 重新给master添加构建任务 将server3&#xff0c;server4作为测试主机&#xff0c;停掉其上后面的docker 在server2&#xff08;jenkins&#xff09;主机上安装ansible 设置jenkins用户到目标主机的免密 给测试主机创建用户并…

MySQL8 搭建集群方案文档

MySQL8.0.21 InnoDB Cluster 从零搭建集群方案详细文档 InnoDB集群 本文档分享新版本MySQL 8.0.21 Innodb Cluster集群搭建过程 ~ MySQL InnoDB Cluster为MySQL提供了完整的高可用性解决方案。通过使用MySQL Shell附带的AdminAPI&#xff0c; 您可以轻松地配置和管理一组至少…

【力扣hot100】128-最长连续序列、283-移动零

128. 最长连续序列 import java.util.*;public class Test {public static void main(String[] args) {int[] nums {0, 3, 7, 2, 5, 8, 4, 6, 0, 1};int res new Solution().longestConsecutive(nums);System.out.println(res);} }class Solution {public int longestConsecu…

【Entity Framework】创建并配置模型

【Entity Framework】创建并配置模型 文章目录 【Entity Framework】创建并配置模型一、概述二、使用fluent API配置模型三、分组配置四、对实体类型使用EntityTypeConfigurationAttribute四、使用数据注释来配置模型五、实体类型5.1 在模型中包含类型5.2 从模型中排除类型5.3 …

通过一篇文章让你完全掌握VS和电脑常用快捷键的使用方法

VS常用快捷键 前言一、 VS常用快捷键常用VS运行调试程序快捷键常用VS编辑程序快捷键 二、常用windows系统操作快捷键 前言 VS&#xff08;Visual Studio&#xff09;是一款强大的开发工具&#xff0c;提供了许多常用快捷键&#xff0c;以提高开发效率。这些快捷键包括文件操作…

Java基础学习: JDK动态代理

文章目录 一、什么是JDK动态代理二、JDK动态代理的特点三、JDK动态代理类如何使用四、JDK动态代理原理分析1、创建代理对象2、生成代理类 一、什么是JDK动态代理 JDK动态代理是Java提供的一种动态生成代理类和代理对象的技术。它主要利用Java的反射机制实现&#xff0c;在运行…

国产AI大模型推荐(一)

文心一言 主要功能&#xff1a; 各种类型的问答、各种文本创作、推理与数学计算、写代码、聊天交流、图片生成等。 链接&#xff1a;文心一言 讯飞星火 特点&#xff1a; 内容生成能力&#xff1a;我可以进行多风格多任务长文本生成&#xff0c;例如邮件、文案、公文、作文、对…