3.2JavaScript网页编程——JavaScript网页编程基础

article/2025/10/11 0:59:09

这里写目录标题

    • 总体JS知识流程
    • JS基本知识
      • JS组成
      • 引入方式:内联、内部形式、外部
      • 输入输出
      • 字面量
      • let(推荐)和var(面经有)
      • 变量(标识符)规则(3+1(不能数字开头))
      • typeof 关键字检测数据类型
      • JS数据类型
      • 模板字符串${age}
      • 数据类型的转换
      • 表格变量例子
      • 运算符
      • 逻辑运算符里的短路(中断与否)(5个假的),先算&&后||
      • 表达式和语句
      • case
    • 浏览器断点
      • 循环
      • 数组操作(增push\unshift删pop\shift\slice改查)
      • 综合案例
      • 匿名函数
      • 立即执行函数
      • 案例——时、分、秒
      • 参数个数!
      • 对象
      • 表格渲染数据
      • Math内置对象
      • 任意范围随机数
      • 案例——根据数组对象渲染排版
      • 其他补充JS知识
    • 补充

VScode主题:one dark pro插件

总体JS知识流程

在这里插入图片描述

JS基本知识

JS组成

ECMAscript、DOM、BOM

引入方式:内联、内部形式、外部

如果 script 标签使用 src 属性引入了某 .js 文件,那么 标签的代码会被忽略!!!如下代码所示:

<body><!-- 内联形式:通过 script 标签包裹 JavaScript 代码 --><script>alert('嗨,欢迎来传智播学习前端技术!');</script><!-- 内部--><button @click="alert('月薪过万')">点击</button><!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 --><script src="demo.js">// 此处的代码会被忽略掉!!!!alert(666);  </script>
</body>

输入输出

一输入三输出:

document.write(‘要输出的内容’); //语句的分号可加可不加
alert(‘要输出的内容’);
console.log(‘xxx’);
prompt(‘请输入您的姓名:’);以弹窗形式提示用户输入,//输入的是一个字符串类型

字面量

在这里插入图片描述

let(推荐)和var(面经有)

以下是使用 let 时的注意事项:

  1. 允许声明和赋值同时进行
  2. 不允许重复声明
  3. 允许同时声明多个变量并赋值
  4. JavaScript 中内置的一些关键字不能被当做变量名

以下是使用 var 时的注意事项:
在这里插入图片描述

变量(标识符)规则(3+1(不能数字开头))

  1. 只能是字母、数字、下划线、$,且不能能数字开头
  2. 字母区分大小写,如 Age 和 age 是不同的变量
  3. JavaScript 内部已占用于单词(关键字let、var或保留字int等)不允许使用
  4. 尽量保证变量具有一定的语义,见字知义,推荐小驼峰后面单词首字母大写

typeof 关键字检测数据类型

<script> // 检测 1 是什么类型数据,结果为 numberdocument.write(typeof 1);// typeof 结合字符串隐式转化let num = 10console.log(typeof num + '11') // number11console.log(typeof(num + '11')) // stringconsole.log(typeof(num + +'11')) // number
</script>

JS数据类型

注:JavaScript 中变量的值决定了变量的数据类型

  • 注意是number不是integer
  • undefine未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。

在这里插入图片描述
在这里插入图片描述

<script>let temperature = -40; // 负数document.write(typeof temperature); // 结果为 number// 只声明了变量,并末赋值let tmp;document.write(typeof tmp); // 结果为 undefined
</script>

模板字符串${age}

  • 字符串拼接比较麻烦,直接用模板字符串
  • 模板字符串可以加标签,可以设置样式
<head><style>span {color: pink;</style>
</head>
<body><script>let age = 81document.write(`我今年<span> ${age + 1} </span>岁了`)</script></body>

数据类型的转换

  • 为什么要进行数据类型的转化

隐式的转换


在这里插入图片描述

  • 一些例子
    在这里插入图片描述

显示的转换——number

  • 通过 Number 显示转换成数值类型,当转换失败时结果为 NaN(Not a Number)即不是一个数字。
  • parseInt()只保留整数部分、parseFloat()会保留小数
  • Number和parseFloat的区别,前者不成功会NAN,后者只留下数值(所以经常被用于过滤单位)parseFloat(‘100px’)是100,但是前面也有字母则不行了

// 并不是所有的值都可以被转成数值类型
let str = ‘hello’;
// 将 hello 转成数值是不现实的,当无法转换成
// 数值时,得到的结果为 NaN (Not a Number)

显示的转换2_string

  • 通过String(变量),例如,String(10)
  • 通过变量age.toString()
  • 或者变量age.toString(2),括号里面是二进制的意思

表格变量例子

在这里插入图片描述
在这里插入图片描述
弹窗3个输入数据后随输入数据渲染了这样的表格
在这里插入图片描述

运算符

  • 以后判断要用===,开发常用,要值和类型都一样
  • 还有最好用!==
    在这里插入图片描述

console.log(5 == ‘5’) // true,只要值一样,不管数据类型
console.log(5 === ‘5’) //false

  • NaN不等于任何值,包括它本身
  • 尽量不要比较小数,因为小数有精度问题,例如 0.1 + 0.2 === 0.3这种false 可能是0.3000000000004
  • 不同类型之间比较会发生隐式转换

逻辑运算符里的短路(中断与否)(5个假的),先算&&后||

  • 逻辑中断原因:通过左边能得到整个式子的结果,因此没必要再判断右边
  • 运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
    在这里插入图片描述

特殊的几个为假的:undefine、null、0、false、‘’ 这五个和&&直接不用判断后面 和 ||直接看后面,(nan是非数值,所以不考虑,一般也可以暂且看做false,在if条件里面也是)

当传入的没有参数,一般undefine+undefine=NAN
为了防止这种报错,就用 || 进行一个处理,这样undefine || 0 是0…

在这里插入图片描述

先一元运算符,再算逻辑运算符,在逻辑中先算&&,再算||

在这里插入图片描述

表达式和语句

程序三大流程控制语句:顺序、分支(if、三元、swich)、循环

在这里插入图片描述

案例——数字补0

在这里插入图片描述
其实0也可以不加引号,prompt
在这里插入图片描述

case

简单个值用swich直接找,快。
有范围就用多分支吧
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果是字符串相应的都要换
在这里插入图片描述

在这里插入图片描述

简易计算器

在这里插入图片描述

浏览器断点

打了要刷新页面,重新执行,不要了再点去掉即可。
在这里插入图片描述

在这里插入图片描述

循环

continue,直接退出本次循环,不再执行后面的语句,进行下一次循环
break,退出所有循环,结束
在这里插入图片描述

数组操作(增push\unshift删pop\shift\slice改查)

在这里插入图片描述

  • 增push\unshift

let arr = []就初始化定义了一个空数组

1.数组.push() 方法将一个或多个元素添加到数组的末尾并返回该数组的新长度,例如arr.push(‘ewer’,‘rewt’),添加之后是[…,‘ewer’,‘rewt’]
2.arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度arr.unshift(‘ewer’,‘rewt’),添加之后是[‘ewer’,‘rewt’,…]

  • 删pop\slice(应用场景:抽奖、删除指定商品)

数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值,无参数
数组. shift() 方法从数组中删除第一个元素,并返回该元素的值,无参数
数组. splice(start, delectCount) 方法 删除指定元素,起始位置+删几个(如果delectCount省略则默认从指定的起始位置删除到最后)

shift是删除、unshift就是加

综合案例

在这里插入图片描述

在这里插入图片描述

匿名函数

将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数表达式

在这里插入图片描述
在这里插入图片描述

使用场景(web API中)
在这里插入图片描述

在这里插入图片描述

立即执行函数

场景介绍: 避免全局变量之间的污染,无需调用,立即执行,其实本质已经调用了,多个立即执行函数之间用分号隔开

前面括号是定义,传入的函数是形参,后面的括号是调用执行,里面是实参
第二种形式也是哦,把括号放里面了
在这里插入图片描述

应用场景

在这里插入图片描述

案例——时、分、秒

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

参数个数!

在这里插入图片描述

对象

  • 对象的访问
    在这里插入图片描述
    在这里插入图片描述
  • 对象的改变,有就改,无就加
    在这里插入图片描述
  • 对象的遍历
    obj.k是去找属性名为k的
    在这里插入图片描述
    在这里插入图片描述

表格渲染数据

  • 表格

在这里插入图片描述
数据是
在这里插入图片描述
先写表头表尾
在这里插入图片描述
JS渲染中间部分
在这里插入图片描述

Math内置对象

在这里插入图片描述
round是四舍五入(就近取整,.5的就往大的取,负数也是大的取)
在这里插入图片描述

任意范围随机数

random是包括0不包括1的,注意有个floor
在这里插入图片描述

案例——根据数组对象渲染排版

根据数据个数渲染li,使用document.write(``)里面写li

在这里插入图片描述

其他补充JS知识

在这里插入图片描述
在这里插入图片描述

  • 简单数据类型存放在栈里面的是值
  • 引用类型变量(栈空间)里存放的是地址

堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中
的栈;
简单数据类型存放到栈里面
2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
引用数据类型存放到堆里面

在这里插入图片描述
如果修改其中一个的值,另一个也会变
在这里插入图片描述

补充

a++ 、a-- 、!非、正负号、就是一元运算符(只需要自己运算)

3+4的加号就是二元运算符(需要两个运算符一起参与)

三元运算符(相当于简写的if else)需要三个:条件 ? 满足条件的代码 :不满足条件的代码
还可以 let re = 条件 ? 满足条件的代码 :不满足条件的代码,进行赋值

prompt()的获取输入默认是字符串类型,可以+prompt()获取就是数字类型了,括号里面可以加提示字符串

冒泡排序

在这里插入图片描述

return 只能返回一个值,要么用数组封装
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Lxl5qpIY.shtml

相关文章

网页设计之JavaScript

文章目录 JavaScript笔记一.JavaScript概述1.JavaScript历史2.javaScript与java的区别3.javaScript的作用4.JavaScript与html,css关系 二.基本语法1.位置2.变量3.控制语句 三.函数&#xff0c;内置对象与事件1.函数基本语法&#xff1a;全局函数&#xff1a; 2.内置对象&#x…

JS实现网页效果

function $(id){return document.getElementById(id); } function $name(name){return document.getElementsByName(name); }树形菜单 onclick事件改变display属性来控制子树的显示开关效果function treeShow(id){//console.log("事件添加成功");if(document.getElem…

JavaScript—— 常见网页特效

目录 一、常见网页特效1. 案例&#xff1a;网页轮播图1.1 案例分析1.1.1 左右按钮的显示与隐藏1.1.2 动态生成小圆圈1.1.3 小圆圈的排他思想1.1.4 点击小圆圈滚动图片1.1.5 点击右侧按钮一次&#xff0c;就让图片滚动一张1.1.6 克隆第一张图片1.1.7 点击右侧按钮&#xff0c;小…

php几种常用的加密解密算法

本文给大家介绍php的三种常用的加密解密算法&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。 php 自带的加密函数&#xff1a; 不可逆的加密函数为&#xff1a;md5()、sha1()、crypt() md5() 用来计算 MD5 哈稀 md5(stri…

加解密算法概述

文章目录 加解密算法概述前言概述加解密算法国密算法 应用总体对称加解密非对称加解密 实现 加解密算法概述 前言 密码由来已久&#xff0c;相传公元前405年&#xff0c;雅典和斯巴达之间的伯罗奔尼撒战争最早出现密码&#xff0c;通过杂乱无章的字母拼接成一段话就是要传递的…

AES加密解密算法设计(C++)

目 录 1&#xff0e; 背景与意义 4 2. 系统设计 5 2.1系统主要目标 5 2.2主要软件需求&#xff08;运行环境&#xff09; 5 2.3功能模块与系统结构 6 3 系统功能程序设计 8 3.1基本要求部分 8 3.1.1 字节替换 8 3.1.2行移位 9 3.1.3列混合 11 3.1.4密钥加 13 3.1.5密钥扩展 14 …

加解密算法

总结 推荐使用的算法&#xff1a; 对称加密算法&#xff1a;AES-GCM-256&#xff0c;SM1 (硬件国密), SM4 (国密)非对称加密算法&#xff1a;RSA2048&#xff0c;SM2 (国密)信息摘要算法&#xff1a;SHA256&#xff0c;SM3 (国密散列算法) 对称加密算法/AES-GCM-256: GCMGM…

加密解密及算法详解

1、简介 今天我要给大家分享的是互联网通信中用到的各种加密解密算法&#xff0c;在我们介绍加解密知识前&#xff0c;首先我们了解一下密码学、密码、加密、数字签名、密钥交换等相关术语的含义。 1.1 密码学 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规…

常见的加密解密算法

文章目录 一、概述二、区别 一、概述 加密分为单向加密和双向加密&#xff1a; 单向加密 又称为不可逆加密&#xff0c;即生成密文无法反解的一种加密方式&#xff1b;eg:MD5和SHA系列、HMAC。 双向加密 又称为可逆加密&#xff0c;即生成密文后&#xff0c;在需要的时候可以反…

RSA 加密解密算法实现(简单,易懂)!!!

目录 一、什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二、RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息 3.用私钥解密信息 三、AC代码 六、RSA算法的测试 七、共勉 一、什么是RSA算法 在计算机中常用的加密算法分为两类&#xff1a;对称…

13种加密与解密算法【一】

这15种加密解密算法分别是&#xff1a;散列哈希[MD5、SHA1、CRC32]&#xff0c;对称[DES&#xff0c;3DES&#xff08;TDEA、Triple DES&#xff09;&#xff0c;AES、&#xff0c;Blowfish&#xff0c;RC4、RC5&#xff0c;IDEA]&#xff0c;Base64、Rabbit、Escape。【三种分…

【2021最新版】Linux面试题总结(48道题含答案解析)

文章目录 1、绝对路径用什么符号表示&#xff1f;当前目录、上层目录用什么表示&#xff1f;主目录用什么表示? 切换目录用什么命令&#xff1f;2、怎么查看当前进程&#xff1f;怎么执行退出&#xff1f;怎么查看当前路径&#xff1f;3、怎么清屏&#xff1f;怎么退出当前命令…

linux操作系统期末考试题库

别光看点个赞呗 文档完整下载链接&#xff1a; w​​​​​​​w​​​​​​​https://download.csdn.net/download/weixin_59241300/87299684 1. cal命令 2.cat命令 3.cd命令 4.date命令 5.echo命令 6.grep命令 7.head 命令 8.ls 命令 9.touch 命令 10.more命令 …

Linux上机考试试题

Linux基础机考测试题 1、如果忘记登录密码&#xff0c;如何破解超级用户root的密码&#xff0c;并将密码改为redhat。&#xff08;操作过程抓图体现&#xff09; 开机在出现grub画面&#xff0c;按e键 用上下键选中第二项(类似于kernel /boot/vmlinuz-2.4.18-14 ro rootLABEL…

linux考试题库

&#xff08;Linux&#xff09;是一个自由、免费、开放的系统软件&#xff0c;支持多种硬件平台&#xff0c;多用户、多任务特点。 Linux操作系统是&#xff08;Linus Torvalds&#xff09;第一个开发的。 下列中&#xff08;单用户&#xff09;不是Linux的特点。 Linux一般…

Linux期末考试题库(超全)

文章目录 Linux期末考试题库选择题填空题简答题操作题 Linux期末考试题库 选择题 在创建Linux分区时&#xff0c;一定要创建&#xff08; D &#xff09;两个分区 A. FAT/NTFS  B. FAT/SWAP  C. NTFS/SWAP  D.SWAP/根分区 在Red Hat Linux 9 中&#xff0c;系统默…

虚拟机镜像文件高速下载方法之一

虚拟机镜像文件高速下载方法之一&#xff08;外加镜像文件合集打包&#xff09; 1.打开网址网易开源镜像站 2.打开对应文件夹&#xff08;比如下载kali镜像文件&#xff09; &#xff08;1&#xff09;点击 kali-images/ &#xff08;2&#xff09;点击自己需要的版本(此处我…

添加虚拟机镜像centso 8的步骤

此篇文章仅介绍添加虚拟机镜像的步骤&#xff0c;特别说明这里以centso 8为例 如有需要安装VMware虚拟机&#xff0c;可以通过以下链接跳转至对应文章 VMware虚拟机安装配置及虚拟机网络模式说明https://blog.csdn.net/weixin_55883492/article/details/123790174?spm1001.2…

vmware 虚拟机恢复ghost镜像文件

一、下载winPE.iso、软碟通 链接&#xff1a;https://pan.baidu.com/s/1Ty2td8_9-3Dr7Qc5XHhyNw 提取码&#xff1a;wtuk 二、恢复&#xff1a; 1、配置基础Vmware系统模板&#xff0c;如何配置可百度搜索 注意&#xff1a;内存必须为2G以上,否则无法使用PE 2、CD/DVD — …

macOS Monterey 12.3 (21E230) 虚拟机 IOS 镜像

macOS Monterey 12.3&#xff08;内部版本号 21E230&#xff09;&#xff0c;这是一个重大更新&#xff0c;引入了通用控制&#xff0c;这项功能可以支持一个键盘或者鼠标同时控制多台 Mac 电脑或者 iPad。另外根据用户反馈&#xff0c;此次更新也对 AMD 6000 系显卡进行了优化…