JavaScript 基础2

js的运算符

算数运算符

+ 相加求和,如果用在字符串则是拼接

-相减求差

*相乘求积

/相除求商

%模除求余

具体用法如下

let num = 154
let num2 = 15
document.write(num+num2)
document.write(`<br>`)
document.write(num-num2)
document.write(`<br>`)
document.write(num*num2)
document.write(`<br>`)
document.write(num/num2)
document.write(`<br>`)
document.write(num%num2)
document.write(`<br>`)

最后输出结果

赋值运算符

a=b,把b赋值给a
a+=b,a=a+b
a-=b,a=a-b
a*=b,a=a*b
a/=b,a=a/b
a%=b,a=a%b

自增自减运算符

let num = 114514

num++  等价于  num=num+1

num--  等价于  num=num-1

每次增或者减的单位都是1

比较运算符

let a=12,b=22
a>b   false,a大于b,判断为假
a<b   true,a小于吧=b,判断为真
a>=b   false,a大于或者等于b,判断为假
a<=b   true,a小于或者等于b,判断为真
a!=b true,a不等于b,判断为真
a!==b true,a不全等于b,判断为真


a==b   false,a等于b,判断为假
a===b   false,a等于b并且a与b类型相同,判断为假
如果a是100,b是"100",则a==b为true,a===b为false。
如果a是100,b是100,则a==b为true,a===b为true。
a!==b a和b不相同,并且类型也不同
大于小于这些都和==类似,不判断类型是否相同

逻辑运算符

 &&  两边同时为真则为真

||  两边有一个真就是真,如果都是假则为假

!  布尔值反转,真变假,假变真

^  二进制的运算
a    = 0111 0101

b    = 1001 1010

a^b = 1110 1111

二进制相同位数的值不同为1,相同为0

短路:
在a&&b运算的时候如果a判断为假,则整个a&&b都为假,不会判断b
在a||b的运算的时候,如果判断a为真,则整个a||b为真,不会判断b

三元运算符

a ? b :c
如果a为真,值为b,否则值为c
 

//补0案例 输入1 输出01
let num = prompt("input a number")
document.Write(`${num < 10 ? "0"+num : num}`)

输入小于十的数会补一个0 

if语句

if,判断

if(表达式){语句
}

如果表达式的为真,则执行语句。为假不执行

if...else...

if(表达式){
语句a
}else{
语句b
}

如果表达式为真执行语句a否则执行语句b

if...else if...else

if(表达式1){
语句a
}else if(表达式2){
语句b
}else{
语句c
}

如果表达式1为真执行语句a,如果表达式1为假去判断表达式2,如果表达式2为真执行语句b,如果表达式2为假执行语句c。可以嵌套很多很多很多很多很多很多个if else 

switch语句

let num=2
switch(num){case 1:document.write("1")breakcase 2:document.write("2")breakcase 3:document.write("3")breakdefault:document.write("0")
}

根据num去匹配对应的。num=2,则case 2匹配,执行case2的语句  
要求:num和1类型相同,值相同才会匹配。

document.write("2")
    break

break用于跳出switch语句不然case3 和 default都会被执行

while语句

while(循环条件){
循环体
}

如果循环条件为真则执行循环体代码,为假结束循环

可以使用break直接结束整个循环,continue跳过本次循环进入下一个循环 

for语句

for(a;b;c){循环体}

a一般是用于变量的初始化,b是循环条件,c用于循环变量更新。而且abc三个语句都是可以省略的

可以使用break直接结束整个循环,continue跳过本次循环进入下一个循环

js函数 

函数的声明

无参函数声明:
function 函数名(){
        函数体
}


调用:函数名()

带参函数声明
function 函数名(参数列表){
        函数体
}


调用:函数名(对应参数)

由于js的变量无论什么类型都是一样的表示形式,所以参数列表里面只需要写变量名就可以了。

 function sum(num1,num2){return num1 + num2[5];}let num = sum(1,[3,4,5,6,7,8,9])document.write(num)

return x 返回变量x,函数一旦执行了return就会立即终止,不会继续执行下去。

同样,我们并不确定函数接收到了参数没有,如果没有传递参数,在运行的时候也是不会报错的。所以就需要我们给变量形参一个默认的值。这样就可以有一个兜底的情况。我们也可以在这里声明形参所需要的实参是什么类型的。

如果我们想检测我们传递的参数类型是否正确,不正确就打印出函数实参类型错误。
 

function sum(num1 = 0,num2 = 0){if(typeof num1 === "number" && num2 ==="number"){    return num1 + num2}else{console.log("error")}
}

或者直接给形参和返回值加个限制

function sum(num1:number,num2:number):number{return num1 + num2}

function sum(num1:number,num2:number):number里面的:number就是说这个参数类型是number类型,如果不是就会报错。形参列表外面的:number就是对函数返回值的限制

现在为止我们所学到的数据类型有

  1. number 数字类型
  2. string 字符串
  3. bool 布尔值
  4. undefined 未定义
  5. null 空
  6. array 数组

总结:函数的作用在于将一段可能被多次使用的代码整合在一起,方便多次使用。

js匿名函数

具有函数名的函数成为具名函数,我们上面讲的就是具名函数。
匿名函数就是没有名字的函数,匿名函数的调用可以有一下方法:

1.将匿名函数赋值给变量

let alpha = function(num1: number, num2, num3): number {return num1 + num2 + num3;}let a = alpha(1,2,3)console.log(a)

 相当于把一个函数赋值给一个变量,调用的时候变量名代替了函数名。

2.立即执行函数

(function(x,y){console.log(x*y)
})(5,4);
//结果打印20到控制台

这个函数会被直接执行,不需要调用,也没法调用。而且立即执行函数之间要加分号

js对象 

定义

let name = {属性名:属性值,方法名:函数
}//逗号隔开,最后一个不需要加逗号

有点像GO语言的map,c的结构体,python的字典之类的。

访问
name.属性名  得到   属性值
name.方法名()    调用函数

对象的增删改查

1.增
 

  let goods ={name:"小米",id : "100012816024",weight : 0.55,address : "中国大陆",}goods.money = 1999

对象名.新属性名 = 新值。完成添加操作

2.删

let goods ={name:"小米",id : "100012816024",weight : 0.55,address : "中国大陆",}delete goods.name

delete 对象.属性  删除指定的属性

3.改

let goods ={name:"小米",id : "100012816024",weight : 0.55,address : "中国大陆",}goods.name = "华为"

对象.属性 = 新值 更改值,如果不存在对应属性就是增操作

4.查

let goods ={name:"小米",id : "100012816024",weight : 0.55,address : "中国大陆",}goods.name 

对象.属性 查询操作,返回属性的属性值

对象的操作增删改查都可以使用对象名["属性名"]来代替
 

对象.name   ===   对象["name"]
delete 对象.name   ===   delete 对象["name"]
对象.name = "qwe"   ===   对象["name"]="qwe"

遍历对象

for(let x in 对象){//x是属性的名,也就是循环的把对象里面的属性名或者方法名轮番赋值给xconsole.log(对象[x])//输出对应的参数,如果是函数则会打印该函数,不运行
}

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

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

相关文章

《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开

《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开&#xff0c;本次讲座中来自Xsens的人形机器人与动捕技术专家Jeffrey Muller与Dennis Kloppenburg不仅将就Xsens动作捕捉系统与人形机器人行为训练中的实际应用进行详细讲解&#xff0c;同时还会对目前大家所关注…

ArcGIS Server 10.2授权文件过期处理

新的一年&#xff0c;arcgis server授权过期了&#xff0c;服务发不不了。查看ecp授权文件&#xff0c;原来的授权日期就到2024.12.31日。好吧&#xff0c;这里直接给出处理方法。 ArcGIS 10.2安装时&#xff0c;有的破解文件中会有含一个这样的注册程序&#xff0c;没有的话&…

Fabric部署-docker安装

一&#xff1a;安装docker 1.先卸载旧docker apt-get remove docker docker-engine docker.io containerd runc PS&#xff1a;新开的虚拟机输入命令后是这样的。 2.更新软件包 在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本: sudo apt update sudo apt …

Scrum中敏捷项目经理(Scrum Master)扮演什么角色?

敏捷开发模式已经逐渐被主流的软件研发团队所接受&#xff0c;其中Scrum是最具代表性的敏捷方法之一。Scrum框架中有三个核心角色&#xff1a;Product Owner&#xff08;PO&#xff09;、Scrum Master&#xff08;SM&#xff09;和Development Team&#xff08;DT&#xff09;。…

计算机毕设-基于springboot的教务管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Lianwei 安全周报|2025.1.2

以下是本周「Lianwei周报」&#xff0c;我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件&#xff0c;保证大家不错过本周的每一个重点&#xff01; 政策/标准/指南最新动态 01 国家数据局等五部门印发《关于促进企业数据资源开发利用的意见》 为充分释放企业…

ROS导航使用贝塞尔曲线对全局路径进行平滑处理

文章目录 前言一、贝塞尔曲线的使用二、全局路经修改三、结果对比 前言 ROS原生的全局路径规划GlobalPlanner包含A*和Dijkstra&#xff0c;两者原理基本相同&#xff0c;能够规划出从起点到终点的路径&#xff0c;但是由于栅格地图存在锯齿形&#xff0c;得到的全局路径也会出…

矩阵简单问题(Java)

问题&#xff1a; 顺时针打印二维方阵&#xff1a; 1 2 3 4 15 5 6 7 8 14 9 10 11 12 13 13 14 15 16 public class Test1 {public static void main(String[] args) {int[][] arr new int[][]{{1, 2, 3, 4,100},{5, 6, 7, 8,101},{9, 10, 11, 12,102},{13, 14, 15, 16,…

python实现,outlook每接收一封邮件运行检查逻辑,然后发送一封邮件给指定邮箱

以下是一个使用 Python 和 win32com.client 模块实现的示例代码&#xff0c;每当 Outlook 接收到一封新邮件时&#xff0c;执行检查逻辑并发送一封邮件到指定邮箱。这个代码依赖于 Windows 系统和安装了 Microsoft Outlook。 环境准备 确保安装了 pywin32 库&#xff1a;pip …

【Vue】v-if 和 :is 都是 Vue 中的指令,但它们用于不同的目的和场景

v-if v-if 是一个条件渲染指令&#xff0c;用于根据表达式的真假值来决定是否渲染一块内容。当 v-if 的表达式为真&#xff08;truthy&#xff09;时&#xff0c;Vue 会确保元素被渲染到 DOM 中&#xff1b;当表达式为假&#xff08;falsy&#xff09;时&#xff0c;元素不会被…

GIT 企业级开发学习 1

本节主要命令&#xff1a; git init ls 不能列出 .git ls -a 列出 .git 1. 初始化 Git 仓库 git init • 初始化一个新的 Git 仓库&#xff0c;在当前目录下生成一个 .git 隐藏文件夹&#xff0c;用于存储版本控制信息。 2. 查看隐藏文件 ls -a • 使用 ls -a 显示隐藏文件…

【面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍Tensor RT 的优化流程。

【面试AI算法题中的知识点】方向涉及&#xff1a;ML/DL/CV/NLP/大数据…本篇介绍Tensor RT 的优化流程。 【面试AI算法题中的知识点】方向涉及&#xff1a;ML/DL/CV/NLP/大数据…本篇介绍Tensor RT 的优化流程。 文章目录 【面试AI算法题中的知识点】方向涉及&#xff1a;ML/D…

【从零开始入门unity游戏开发之——unity篇05】unity6基础入门——运行游戏按钮、Game游戏窗口和Project项目窗口介绍

文章目录 运行游戏按钮、Game游戏窗口和Project项目窗口一、运行游戏按钮二、Game游戏窗口1、右上角设置1.1 如果没有相机渲染则发出警告1.2 在”编程模式”下清除每一帧1.3 窗口最大化 2、上方工具&#xff08;1&#xff09;切换手机模拟器&#xff08;2&#xff09;切换不同显…

Java 定时任务发送邮件

163邮箱为例 1、添加依赖 <!-- mail-starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency> 2、编写配置&#xff0c;smtp默认端口25&#xff0c…

《探索人工智能的多元学派:符号主义、连接主义与行为主义》

在人工智能发展的进程中&#xff0c;不同学派从各自的角度诠释着智能的本质。其中符号主义、连接主义和行为主义学派占据着重要地位&#xff0c;它们以独特的方式推动着人工智能的发展。 符号主义学派&#xff1a;逻辑推理的核心 符号主义学派认为人工智能源于对逻辑符号的处…

线性代数自学资源推荐我的个人学习心得

1.前言 自己这个学期的课程基本上就结束了&#xff0c;因此我自己就开始学习下个学期的课程--线性代数&#xff0c;也是我们在大学里面的最后一门数学课程了&#xff1b; 之前有过一些这个线性代数的基础&#xff0c;当时主要是参加这个数学建模比赛去学习这个matlab吗&#…

【深度学习进阶】基于CNN的10种物体识别项目

介绍 基于卷积神经网络&#xff08;CNN&#xff09;的猫狗图片分类项目是机器学习领域中的一种常见任务&#xff0c;它涉及图像处理和深度学习技术。以下是该项目的技术点和流程介绍&#xff1a; 技术点 卷积神经网络 (CNN): CNN 是一种专门用于处理具有类似网格结构的数据的…

开发培训-慧集通(iPaaS)集成平台脚本开发Groovy基础培训视频

‌Groovy‌是一种基于Java虚拟机&#xff08;JVM&#xff09;的敏捷开发语言&#xff0c;结合了Python、Ruby和Smalltalk的许多强大特性。它旨在提高开发者的生产力&#xff0c;通过简洁、熟悉且易于学习的语法&#xff0c;Groovy能够与Java代码无缝集成&#xff0c;并提供强大…

Flutter中添加全局防护水印的实现

随着版权意识的加强&#xff0c;越来越多的应用开始在应用内部增加各种各样的水印信息&#xff0c;防止核心信息泄露&#xff0c;便于朔源。 效果如下&#xff1a; 在Flutter中增加全局水印的方式&#xff0c;目前有两种实现。 方案一&#xff0c;在native层添加一个遮罩层&a…

每日一学——监控工具(Grafana)

2.2 Grafana 2.2.1 数据源配置 嘿&#xff0c;各位小伙伴们&#xff01;既然我们已经有了Prometheus这位超级英雄来帮我们收集数据&#xff0c;那么接下来我们就需要一位艺术家来把这些枯燥的数据变成美丽的图画。这就是Grafana出场的时候了&#xff01;Grafana是一款非常流行…