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

JavaScript 基础

一 JavaScript 的书写形式

1.1 行内式

<input type="button" value="点我一下" onclick="alert('hello akai');" >

注意,JS 中的字符串常量可以用单引号表示,也可以使用双引号表示.HTML 中推荐使用双引号,JS 中推荐使用单引号(使用双引号容易出现截断问题)

1.2 内嵌式

 写到 script 标签中(建议写在</body>之前)

    <script>alert('hello akai');</script>

script 标签最好写在 </body> 前,需要根据场景需求放置标签位置,因为HTML 中的代码是根据顺序执行的,可能会出现变量为初始化的场景. 例:

<head><script>console.log(document.getElementById('but').val);</script>
</head>
<body><input  id="but" type="button" value="点我一下" onclick="alert('hello akai');" >
</body>

 

1.3 外部式

写到单独的 .js 文件中(建议写在</head> 之前)

<body><script src="tool.js"></script>
</body>

 注意, 这种情况下 script 中标签中间不能写代码, 必须空着(写了代码也不会执行)

二 输入输出 

2.1 输入: prompt

弹出一个输入框

// 弹出一个输入框
<script>prompt('请输入你的名字:');
</script>

可以使用变量来接收 prompt 返回值.

2.2  输出: alert

// 弹出一个输出框
<script>alert('hello');
</script>

2.3 输出:  console.log

// 在控制台打印
<script>console.log('这是一条测试');
</scipt>

三 比较运算符

== 比较相等 , 会进行隐试的转换

=== 比较相等, 不会进行隐试类型的转换

四 数组

4.1 创建数组

    <script>// 使用new 关键字创建var arr=new Array();// 使用字面常量方式创建var brr=[]var crr=[1,2,'haha',true];crr='hello';console.log(crr);console(crr[1])//此时控制台上是不会有打印结果的</script>

js 中数组的元素下标可以不连续

注意:不要给数组名直接赋值,此时数组中的所有元素都没有了

4.2 新增数组元素

相当于在末尾新增元素,新增的元素默认值为 undefined

    <script>var arr=[9,3,4,5];arr.length=5;console.log(arr);console.log(arr[4]);//控制台打印undefined</script>

通过下标新增

    <script>var arr=[9,3,4,5];arr[5]=5;console.log(arr[4]);</script>

使用 push 进行追加元素

    <script>var arr=[1,2,3,4,5,6];var newArr=[];for(var i=0;i<arr.length;i++){if(arr[i]%2==1)newArr.push(arr[i]);}</script>

4.3 删除数组中的元素

    <script>var arr=[1,2,3,4,5,6];//从下标为2 的元素开始,删除2个元素arr.splice(2,2);//slice 不会改变原数组的结构,获取下标2和3 的元素var lo=arr.slice(2,4);console.log(arr);</script>

五 函数

5.1 语法格式

 function 函数名(形参列表){

        函数体

        return 返回值

}

 

//函数调用

函数名                                //不考虑返回值

返回值=函数名(实参列表)  //考虑返回值
 

 • 函数定义并不会执行函数体内容,必须要调用才会执行,调用几次就会执行几次

    <script>hello();hello();hello();function hello(){console.log('hello');}</script>

函数的定义和调用的先后顺序没有要求,且创建函数时形参可以不用声明类型

关于参数的个数

1)如果实参的个数比形参的个数多,则多出的参数不参与函数的运算

2)如果室参的个数比形参的个数少,则此时多出来的形参的是为 undefined

5.2 函数表达式

    <script>var add=function(){var sum=0;for(var i=0;i<arguments.length;i++){sum+=arguments[i];}return sum;}console.log(add(10,20));//30console.log(add(1,2,3,4));//10console.log(typeof add);//function</script>

此时形如 function(){} 这样的写法定义了一个匿名函数,然后将这个匿名函数用一个变量来表示,后面就可以通过这个 add 的变量来调用函数了

六 对象的使用 

使用{} 创建对象

    <script>var teacher={};//创建一个空对象var student={name: 'akai',height: 170,weight: 120,sayHello: function(){console.log('hello');}}student.sayHello();</script>

•  可以直接使用 { } 创建一个空对象 

•  属性和方法使用键值对的形式来组织(类似于HashMap)

•  键值对之间使用 , 分割. 最后一个属性后面的,可有可无

•  方法的值是一个匿名函数

使用对象的属性和方法:

<script>       //使用 .成员 访问运算符来访问属性 console.log(student.name);// 使用 [ ] 访问属性,此时属性需要加上引号console.log(student['height']);// 调用方法,别忘记加(),student.sayHello();
</script>

七. 猜数字

<h3>猜数字游戏</h3>
请输入要1-10的数字:
<input type="text" id="inputNum"><p></p>
<input type="button" value="查看结果" onclick="checkRight()"><br/>
<div id="print"></div><script>function checkRight(){var randNum=Math.floor(Math.random()*10+1);var inputNum=document.getElementById("inputNum").value;var mes;if(inputNum==randNum){mes="<h4>恭喜你猜对了</h4>";}else{mes="<h4>你猜错了,正确答案是:"+randNum+"</h4>";}document.getElementById("print").innerHTML=mes;}</script>

八 表白墙

<body><div style="width: 100%;text-align: center;"><h3>表白墙</h3>谁&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<input id="from"><p></p>对谁&nbsp;&nbsp;:<input id="to"><p></p>说 &nbsp;&nbsp;&nbsp;&nbsp;:<input id="mes"><p></p><input type="button" value="提交" onclick="check()"><div id="wall"></div></div><script>function check(){var fromM=$("#from");var toM=$("#to");var mesM=$("#mes");if(fromM.val().trim()==""){alert("请先输入你的名字");fromM.focus();return;}if(toM.val().trim()==""){alert("请先输入对方的名字");toM.focus();return;}if(mesM.val().trim()==""){alert("请先输入要发送的信息");mesM.focus();return;}$("#wall").append(fromM.val()+"对"+toM.val()+"说"+mesM.val()+"<p></p>");// 将表格数据清空fromM.val("");toM.val("");mesM.val("");}</script></body>

 

 

相关文章:

JavaScript 基础

一 JavaScript 的书写形式 1.1 行内式 <input type"button" value"点我一下" onclick"alert(hello akai);" > 注意,JS 中的字符串常量可以用单引号表示,也可以使用双引号表示.HTML 中推荐使用双引号,JS 中推荐使用单引号(使用双引号容易…...

DOS学习-目录与文件应用操作经典案例-type

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 1. 查看文本文件内容 2. 同时查看多个文本文件内容 3. 合并文…...

QT教程-一,初识QT

目录 一,QT是什么&#xff1f;能够使用它做什么&#xff1f; 二&#xff0c;Qt 能够使用的语言 三&#xff0c;Qt主要用于什么领域&#xff1f; 四&#xff0c;Qt开发的软件 一,QT是什么&#xff1f;能够使用它做什么&#xff1f; Qt是一个跨平台的 C 开发库&#xff0c;主…...

SpringBoot搭建Eureka注册中心

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 1、Spring-Cloud Euraka介绍 Spring-Cloud Euraka是Spring Cloud集合中一…...

day 38 435.无重叠区间 763.划分字母区间 56. 合并区间 738.单调递增的数字 968.监控二叉树

435.无重叠区间 思路 为了使区间尽可能的重叠所以排序来使区间尽量的重叠&#xff0c;使用左边界排序来统计重叠区间的个数与452. 用最少数量的箭引爆气球恰好相反。 代码 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…...

ssm/springoot养老院问诊服务预约系统_96316老年人服务系统

2.管理员&#xff1a; &#xff08;1&#xff09;登入注册页面&#xff1a;管理员进行操作时需要是已注册登入的 &#xff08;2&#xff09;权限管理&#xff1a;管理员登入后可以运用权限进行相应的操作管理。 &#xff08;3&#xff09;用户管理&#xff1a;对用户进行删除、…...

WordPress插件优化对提升性能有多大影响?

WordPress插件优化对提升性能的影响可以是非常显著的。插件是WordPress平台的一个重要组成部分&#xff0c;它们可以增强网站的功能和定制性。然而&#xff0c;如果插件没有经过优化&#xff0c;它们可能会成为网站性能的瓶颈。 通过优化插件&#xff0c;可以减少对服务器资源…...

Servlet的response对象

目录 HTTP响应报文协议 reponse继承体系 reponse的方法 响应行 public void setStatus(int sc) 响应头 public void setHeader(String name, String value) 响应体 public java.io.PrintWriter getWriter() public ServletOutputStream getOutputStream() 请求重定…...

Unity射击游戏开发教程:(20)增加护盾强度

在本文中,我们将增强护盾,使其在受到超过 1 次攻击后才会被禁用。 Player 脚本具有 Shield PowerUp 方法,我们需要调整盾牌在被摧毁之前可以承受的数量,因此我们将声明一个 int 变量来设置盾牌可以承受的击中数量。...

初识C语言——第二十八天

代码练习1&#xff1a; 用函数的方式实现9*9乘法表 void print_table(int n) {int i 0;int j 0;for (i 1; i< n; i){for (j 1; j< i; j){printf("%d*%d%-3d ", i, j, i * j);}printf("\n");}}int main() {int n 0;scanf("%d", &a…...

Android NDK系列(三)输入事件分发到Native层的流程

在Android NDK系列(一)手动搭建Native Project 创建的Native工程中,是可以接收输入事件的,只需在android_main中注册输入事件的处理函数,当触摸屏幕后,handleInputEvent函数便会调用,代码如下。 static int32_t handleInputEvent(struct android_app* app, AInputEvent…...

Kafka之【生产消息】

消息&#xff08;Record&#xff09; 在kafka中传递的数据我们称之为消息&#xff08;message&#xff09;或记录(record)&#xff0c;所以Kafka发送数据前&#xff0c;需要将待发送的数据封装为指定的数据模型&#xff1a; 相关属性必须在构建数据模型时指定&#xff0c;其中…...

asp.net core接入prometheus

安装prometheus和Grafana 参考之前的文章->安装prometheus和Grafana教程 源代码 dotnet源代码 新建.net core7 web项目 修改Program.cs using Prometheus;namespace PrometheusStu01;public class Program {public static void Main(string[] args){var builder We…...

C++ 变量类型与转换

C 变量类型与转换 文章目录 C 变量类型与转换变量int_tsize_t与ssize_tpid_ttime_t typenametypeid关键字类型转换编译期类型转换std::static_cast注意事项运行时类型转换std::dynamic_cast 变量 int_t 它是通过typedef定义的&#xff0c;而不是一种新的数据类型。 - int8_t…...

【杂七杂八】Huawei Gt runner手表系统降级

文章目录 Step1&#xff1a;下载安装修改版华为运动与健康Step2&#xff1a;在APP里进行配置Step3&#xff1a;更新固件(时间会很长) 目前在使用用鸿蒙4 111版本的手表系统&#xff0c;但是感觉睡眠检测和运动心率检测一言难尽&#xff0c;于是想到是否能回退到以前的版本&…...

FMEA做不出来的原因究竟是什么?——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA&#xff08;Failure Mode and Effects Analysis&#xff09;即故障模式与影响分析&#xff0c;是一种旨在识别并预防潜在问题的方法。然而&#xff0c;尽管其重要性被广泛认知&#xff0c;但在实际应用中&#xff0c;却常常遇到FMEA难以…...

pandas ExcelWriter写excel报错openpyxl.utils.exceptions.IllegalCharacterError

一直使用pandas写excel&#xff0c;本次写的数据有大字段&#xff0c;每次写到该字段就报错&#xff0c;代码如下&#xff1a; with pd.ExcelWriter(r".\提数_20240523\tq_type3_doc.xlsx", engineopenpyxl) as writer: df.to_excel(writer,indexFalse, sheet_namesh…...

Golang创建文件夹

方法 package zdpgo_fileimport ("os" )// AddDir 创建文件夹 func AddDir(dir string) error {if !IsExist(dir) {return os.MkdirAll(dir, os.ModePerm)}return nil }测试 package zdpgo_fileimport "testing"func TestAddDir(t *testing.T) {data : […...

头歌OpenGauss数据库-I.复杂查询第5关:至少学了某位学生(Oliver)所学的全部课程的学生

本关任务:根据提供的表和数据,查询至少学了Oliver同学所学的全部课程的其他同学的信息(学号s_id,姓名`s_name)。 student表数据: s_ids_names_sex01Mia女02Riley男03Aria女04Lucas女05Oliver男06Caden男07Lily女08Jacob男course表数据: c_idc_namet_id01Chinese0202Math…...

【数据结构】哈夫曼树和哈夫曼编码

一、哈夫曼树 1.1 哈夫曼树的概念 给定一个序列&#xff0c;将序列中的所有元素作为叶子节点构建一棵二叉树&#xff0c;并使这棵树的带权路径长度最小&#xff0c;那么我们就得到了一棵哈夫曼树&#xff08;又称最优二叉树&#xff09; 接下来是名词解释&#xff1a; 权&a…...

张毕贺的音乐故事《越说越明》

张毕贺的音乐故事&#xff0c;始于一把吉他&#xff0c;成于不懈创作&#xff0c;最终汇成一条连接梦想与大众的河流。他的音乐历程&#xff0c;既是个人才华的绽放&#xff0c;也是对音乐教育与本土文化推广的坚定投入。 音乐之路&#xff1a;从翻唱走红到原创深耕 张毕贺的…...

工业数智化改造避坑:拒绝通用模板,定制化才是最优解

在工业数智化转型浪潮中&#xff0c;不少企业陷入了“投入与回报失衡”的困境&#xff1a;耗费大量资金、人力上线的数智化系统&#xff0c;却因与自身业务脱节、流程适配性差&#xff0c;难以发挥实际价值&#xff0c;最终沦为“摆设”。事实上&#xff0c;工业数智化改造的核…...

如何构建LaTeX-Workshop的自动化测试与持续集成流程:开发者完整指南

如何构建LaTeX-Workshop的自动化测试与持续集成流程&#xff1a;开发者完整指南 【免费下载链接】LaTeX-Workshop Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more. 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX-Worksh…...

从‘数值灾难’到平稳训练:深入浅出聊聊MoE中路由Z-loss的设计哲学

从‘数值灾难’到平稳训练&#xff1a;深入浅出聊聊MoE中路由Z-loss的设计哲学 想象一下&#xff0c;你正在指挥一个由数百名专家组成的交响乐团。每位音乐家都技艺精湛&#xff0c;但如果在演奏时某个乐器的音量突然爆表&#xff08;比如小号手过于兴奋&#xff09;&#xff…...

森利威尔SL3073替代RT2862 4-65V超宽压3A降压芯片

在电源管理领域&#xff0c;寻找高效、可靠且功能丰富的DC-DC转换器是设计工程师们不懈追求的目标。当面临将36V电压转换为更低电压并保持3A持续输出电流的应用场景时&#xff0c;传统上可能会选择如RT2862这样的同步降压转换器。然而&#xff0c;随着技术的不断进步&#xff0…...

C++ 模板元编程在性能优化中的作用

C 模板元编程在性能优化中的作用 在现代C开发中&#xff0c;性能优化始终是开发者关注的核心问题之一。而模板元编程&#xff08;Template Metaprogramming, TMP&#xff09;作为一种编译期计算技术&#xff0c;能够在程序运行前完成复杂的逻辑处理&#xff0c;从而显著提升运…...

嵌入式IRC客户端库IrcBot:轻量、事件驱动、零malloc

1. 项目概述IrcBot 是一个面向嵌入式与轻量级系统设计的 IRC&#xff08;Internet Relay Chat&#xff09;协议客户端库&#xff0c;其核心目标并非替代桌面级 IRC 客户端&#xff08;如 HexChat、WeeChat&#xff09;&#xff0c;而是为资源受限的嵌入式设备提供可裁剪、可集成…...

成本控制艺术:OpenClaw+Phi-3-vision-128k-instruct任务级计费方案

成本控制艺术&#xff1a;OpenClawPhi-3-vision-128k-instruct任务级计费方案 1. 当Token消耗成为拦路虎 上个月收到账单时&#xff0c;我的手指在鼠标滚轮上停滞了整整三秒——Phi-3-vision-128k-instruct的API调用费用比预期高出47%。这个数字让我意识到&#xff0c;在享受…...

FC-CLIP实战:为什么说“卷积不死”?在开放词汇分割中冻结CLIP主干的深度解析与避坑指南

FC-CLIP技术解析&#xff1a;卷积架构在开放词汇分割中的不可替代性 当整个计算机视觉领域似乎都被Transformer架构席卷时&#xff0c;FC-CLIP论文却掷地有声地宣告"卷积不死"。这个看似反潮流的结论背后&#xff0c;隐藏着哪些被忽视的视觉归纳偏置&#xff1f;冻结…...

用MATLAB搞定模电实验:单管共射放大电路静态工作点与放大倍数的保姆级仿真

MATLAB仿真单管共射放大电路&#xff1a;从理论到实践的完整指南 引言 在电子工程领域&#xff0c;单管共射放大电路是模拟电路设计的基石之一。传统实验教学中&#xff0c;学生往往需要花费大量时间搭建实体电路、调整参数并测量数据&#xff0c;这不仅效率低下&#xff0c;…...