前端JS学习(一)

基础

JavaScript书写位置

1、行内 JavaScript
  通常放在文档结尾的 < / b o d y > </body> </body> 上面
  将 < s c r i p t > <script> <script>放在HTML文件的底部附近是因为浏览器会按照代码在文件中的顺序加载HTML。
2、内部JavaScript
  代码写在标签内部。
3、外部」avaScript
  代码写在以 .js 结尾的文件里,通过script标签,引入到html页面中。

JavaScript输出语法

输出语法:
 语法1:
  document.write(‘要出的内容’)
  作用:向body内输出内容
 语法2:
  alert(‘要出的内容’)
  作用:页面弹出警告对话框
 语法3:
  console.log(‘控制台打印’)
  作用:控制台输出语法,程序员调试使用
  换行输出:’ < br > ’

JavaScript输入语法

输入语法:
  语法:prompt(‘请输入您的姓名:’)
  作用:显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字

变量

  语法:let 变量名 = 值
  多个变量中间用逗号隔开,但并不推荐这样。通常为了更好的可读性,一行只声明一个变量。
在avaScript中,根据作用域的不同,变量可以分为:全局变量、局部变量
  全局变量:函数外部1et 的变量
  函数内部1et 的变量
全局变量在任何区域都可以访问和修改,局部变量只能在当前函数内部访问和修改。
访问原则:在能够访问到的情况下先局部,局部没有在找全局

数组

  语法:1et 数组名=[数据1,数据2,…·,数据n]
  数组是按顺序保存,所以每个数据都有自己索引号

常量

  当某个变量永远不会改变时,可使用const来声明一个“常量”。
  语法:const 变量名 = 值
  注意:常量不允许重新赋值,声明的时候必须赋值(初始化)

数据类型

JS数据类型整体分为两大类:基本数据类型、引用数据类型
基本数据类型:
  number 数字型
  string 字符串型
  boolean 布尔型
  undefined 未定义型
  null 空类型

引用数据类型
  object对象

  number 数字型

  number 数字型可以进行算术运算操作,主要包括加、减、乘、除、取余(求模)。>+: 求和、-: 求差、*: 求积、/: 求商、%: 取模(取余数)
  算术运算符优先级:先乘除取余,后加减,有括号先算括号
  NaN代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果。任何对NaN的操作都会返回NaN。

  string 字符串型

通过单引号(“)、双引号(”)或反引号(')包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
.
字符串拼接:+运算符可以实现字符串的拼接(数字相加,字符相连)
.
注意事项:
  1.无论单引号或是双引号必须成对使用
  2.单引号/双引号可以互相嵌套,但是不以自已嵌套自已
  3.必要时可以使用转义符\,输出单引号或双引号

模板字符串:拼接字符串和变量
  语法:内容用反引号``,内容中的变量用(美元符号+{})包住
  例: 在这里插入图片描述

boolean 布尔型

布尔类型数据表示真或假,它只有true和false两个固定的值。

未定义类型(undefined)

未定义是比较特殊的类型,只有一个值undefined。未定义类型是弱数据类型,声明一个变量未赋值就是undefined(只声明变量,不赋值)

nul(空类型)

JavaScript中的null仅仅是一个代表“无”、"空”或“值未知”的特殊值。undefined表示没有赋值,而null表示赋值了,但是内容为空。nul作为尚未创建的对象,即将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null。

检测数据类型

JavaScript中可以通过typeof关键字检测数据类型,支持两种语法形式:
  作为运算符:typeof ×(常用的写法)
  函数形式:typeof(x)
在这里插入图片描述

类型转换

JavaScript是弱数据类型,在使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,需要转换变量的数据类型。类型转换,就是把一种数据类型的变量转换成我们需要的数据类型。

隐式转换

隐式转换:某些运算符被执行时,系统内部自动将数据类型进行转换。缺点是转换类型不明确。
 规则:
  +号两边只要有一个是字符串,都会把另外一个转成字符串, - * / 等都会把数据转成数字类型。任何数据和字符串相加结果都是字符串。
在这里插入图片描述

显式转换

为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
显式转换明确告诉系统该转成什么类型。
转换为数字型:Number(数据)
       只保留整数:parselnt(数据)
       可以保留小数:parseFloat(数据)

运算符

赋值运算符:对变量进行赋值的运算符
赋值运算符:=将等号右边的值赋予给左边,要求左边必须是一个容器
其他赋值运算符:
  +=
  *=
  /=
  %=

一元运算符:
 JavaScript运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
  自增:++
  自减:–
注意:前置自增和后置自增单独使用没有区别
let num=1 num++, ++num
其作用都相当于 num+=1
.
注意:前置自增和后置自增如果参与运算就有区别
  前置自增:先自加再使用(记忆口决:++在前先加)
  后置自增:先使用再自加(记忆口诀:++在后后加)
在这里插入图片描述

比较运算符:
在这里插入图片描述

逻辑运算符:解决多重条件判断
 怎么判断一个变量um是否大于5且小于10?
  错误写法:5<num<10
  正确写法:num > 5 && num < 10
在这里插入图片描述

运算符优先级:
在这里插入图片描述

分支语句

i f if if 语句
if 语句有三种结构:单分支、双分支、多分支
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三元运算符
在这里插入图片描述

switch语句
switch case语句一般用于等值判断,不适合于区间判断,switch case一般需要配合break关键字使用,没有break会造成case穿透

在这里插入图片描述

循环语句

while 循环:
在这里插入图片描述
while循环需要具备三要素:
  1.变量起始值
  2.终止条件(没有终止条件,循环会一直执行,造成死循环)
  3.变量变化量(用自增或者自减)
在这里插入图片描述

for 循环:
在这里插入图片描述
例子:
在这里插入图片描述
当如果明确了循环的次数的时候推荐使用for循环
当不明确循环的次数的时候推荐使用while循环

数组

数组(Array):是一种可以按顺序保存多个数据的数据类型
  定义1:1et 数组名=[数据1,数据2,··,数据n]
  定义2:1et 数组名=new Array(数据1,数据2,··,数据n)

操作数组
在这里插入图片描述
.
新增
  数组名. push():将一个或 多个元素添加到数组的末尾,并返回该数组的新长度(重点)
  数组名.unshift() :将一个或多个元素添加到数组的开头,并返回该数组的新长度
.
删除
  数组名. pop() :从数组中删除最后一个元素,并返回该元素的值
  数组名. shift() :从数组中删除第一个元素,并返回该元素的值
  数组名. splice(start,deleteCount) :删除指定元素。start 指定修改的开始位置(从0计数),deleteCount:要移除的数组元素的个数,可选。如果省略则默认从指定的起始位置删
除到最后。
.
数组排序
数组名. sort() 方法可以排序,从小到大
升序:arr.sort(function (a,b){ return a-b})
降序:arr.sort(function (a,b){ return b-a})

函数

函数:是被设计为执行特定任务的代码块,可以实现代码复用,提高开发效率。
.
无参函数定义:function 函数名(){ 函数体 }
无参函数调用:函数名()
. . .
函数名命名规范:
  尽量小驼峰式命名法
  前缀应该为动词
  例:function getName( ){ }
.
参数函数定义:function 函数名(参数){ 函数体 }
参数函数调用:函数名(参数)
用户不输入实参,可以给形参默认值,默认值只会在缺少实参参数传递时才会被执行,所以有参数会优先执行传递过来的实参。
.
当函数需要返回数据出去时,用return关键字
语法:return 数据
.
函数可以分为:具名函数、匿名函数在这里插入图片描述
匿名函数,是没有名字的函数,无法直接使用。使用方式:函数表达式、立即执行函数。
1、函数表达式:将匿名函数赋值给一个变量,并且通过变量名称进行调用
在这里插入图片描述
2、立即执行函数:避免全局变量之间的污染
注意:多个立即执行函数要用;隔开,要不然会报错在这里插入图片描述

对象

对象(object):JavaScript里的一种数据类型,可以理解为是一种无序的数据集合,用多个变量保存则比较散,用对象比较统一。有静态特征=>可以使用数字,字符串,数组,布尔类型等表示、动态行为=>使用函数表示。
.
对象声明
1、:1et 对象名={ }
2、:let 对象名=new Object()
.
对象由属性和方法组成
  属性:信息或叫特征(名词)。属性都是成对出现的,包括属性名和值,它们之间使用英文:分隔,多个属性之间使用英文,分隔
  方法:功能或叫行为(动词)
.
对象属性操作
在这里插入图片描述
对于多词属性或则“—"等属性,点操作就不能用了。采取:对象[‘属性’]方式,单引号和双引号都阔以
在这里插入图片描述
.
对象方法操作
方法是由方法名和函数两部分构成,它们之间使用:分隔
在这里插入图片描述
.
遍历对象
在这里插入图片描述
.
内置对象-Math
Math对象是JavaScript提供的一个“数学”对象,提供了一系列做数学运算的方法
在这里插入图片描述

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

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

相关文章

43、Flink之Hive 读写及详细验证示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Node基础and包管理工具

Node基础 fs 模块 fs 全称为 file system&#xff0c;称之为 文件系统&#xff0c;是 Node.js 中的 内置模块&#xff0c;可以对计算机中的磁盘进行操作。 本章节会介绍如下几个操作&#xff1a; 1. 文件写入 2. 文件读取 3. 文件移动与重命名 4. 文件删除 5. 文件夹操作 6. …

C++零碎记录(四)

6. 深拷贝与浅拷贝 ① 浅拷贝&#xff1a;简单的赋值拷贝操作。 ② 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝操作。 ③ 浅拷贝&#xff0c;如下图所示&#xff0c;带来的问题就是堆区的内存重复释放。 ④ 深拷贝&#xff0c;如下图所示&#xff0c;在堆区…

如何培养潜在客户?看完这篇你就懂了

图片来源于&#xff1a;SaleSmartly官网 有效的潜在客户培育策略将帮助您将更多潜在客户转化为付费客户。 但是&#xff0c;这并不总是那么容易——您必须与其他公司争夺受众的注意力&#xff0c;并向您的领导证明为什么值得投资您的产品或服务。在本文中&#xff0c;我将向您展…

Java 中数据结构HashSet的用法

Java HashSet HashSet 基于 HashMap 来实现的&#xff0c;是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的&#xff0c;即不会记录插入的顺序。 HashSet 不是线程安全的&#xff0c; 如果多个线程尝试同时修改 HashSet&#xff0c;则最终结果是…

Leetcode---360周赛

题目列表 2833. 距离原点最远的点 2834. 找出美丽数组的最小和 2835. 使子序列的和等于目标的最少操作次数 2836. 在传球游戏中最大化函数值 一、距离原点最远的点 这题主要是理解题意&#xff0c;遇到L往左走&#xff0c;遇到R往右走&#xff0c;遇到_左右都可以走&#x…

java八股文面试[数据库]——最左匹配原则

最佳左前缀法则 最佳左前缀法则: 如果创建的是联合索引,就要遵循该法则. 使用索引时&#xff0c;where后面的条件需要从索引的最左前列开始使用,并且不能跳过索引中的列使用。 最左匹配原则是什么&#xff1f; 简单来讲&#xff1a;在联合索引中&#xff0c;只有左边的字段被…

postgres源码解析55 Brin Index--2(brinbuild流程)

上一篇讲解了brin index的基本概念以及页布局postgres源码解析54 Brin Index–1&#xff0c;后续会从源码角度对索引的构建、维护等方面进行深入讲解。 1 关键数据结构 2 brinbuild执行流程图 3 brinbuild 函数详解 1 首先调用brin_matepage_init初始化brin meta元数据页&…

CS420 课程笔记 P4 - 以16进制形态编辑游戏文件

文章目录 IntroductionFinding save filesStringsUnicodeExample!Value searchHealth searchConclusion Introduction 这节课我们将学习编辑十六进制&#xff0c;主要用于编辑保存文件&#xff0c;但十六进制编辑涉及的技能可以很好地转移到&#xff1a; Save file editingRe…

gitlab-runner安装和部署项目

目录 1.安装gitlab-runner 1.1 添加官方仓库 1.2.1 安装最新版本 1.2.2 安装指定版本&#xff08;可选&#xff09; 1.2.3 更新runner&#xff08;可选&#xff09; 1.3 随便点开gitlab上的一个项目 1.4 gitlab-runner的注册 2.配置gitlab-runner 3.runner一些命令 gi…

K8S:K8S自动化运维容器Docker集群

文章目录 一.k8s概述1.k8s是什么2.为什么要用K8S3.作用及功能4.k8s容器集群管理系统 二.K8S的特性1.弹性伸缩2.自我修复3.服务发现和复制均衡4.自动发布和回滚5.集中化配置管理和秘钥管理6.存储编排7.任务批量处理运行 三.K8S的集群架构四、K8S的核心组件1、Master组件2、配置存…

Bridge Champ举办人机对战赛:NFT游戏与传统竞技共生发展编织新格局

概要 现在,NFT与体育竞技正日益紧密地联系在一起。一些体育项目开始推出与赛事或球队相关的NFT,同时也有部分NFT游戏开始举办电子竞技赛事。这种共生发展正在改变体育竞技的生态。 笔者采访了桥牌冠军项目相关负责人,探讨NFT游戏与传统体育竞技的融合潜力。桥牌冠军近期成功举…