前端基础3-1——JavaScript

目录

  • 什么是JavaScript
  • 快速入门
    • 引入JavaScript
  • 数据类型和基本语法入门
    • 1.变量
    • 2.number
    • 3.字符串
    • 4.布尔值
    • 5.逻辑运算
    • 6.比较运算符
    • 7.浮点数
    • 8.数组
    • 9.对象
    • 10.流程控制
    • 11.Map和Set集合
  • 严格检查模式use strict
  • 函数
    • 定义函数
    • 变量的作用域
    • 方法

什么是JavaScript

概述
JavaScript是一门世界上最流行的脚本语言。
一个合格的后端人员,必须精通JavaScript

历史

ECMAScript它可以理解为JavaScript的一个标准,最新版本已经到ES6版本。
但是大部分浏览器还只停留在支持ES5代码上。
开发环境与线上环境容易出现版本不一致的情况。

快速入门

引入JavaScript

1.内部标签

 <script> //....<script>

2、外部引入
hello.js

 aert("hello,world");

test.html

  <!--外部引入  注意:script必须成对出现--><script src="hello.js"></script><!--不用显示定义type,也默认就是javaScript--><script type="text/javascript"></script>

数据类型和基本语法入门

注释格式跟java一样
demo:

     <!--JavaScript严格区分大小写--><script>// 1. 定义变量  var score = 1 ;//alert(num)// 2. 条件控制if (score > 60 && score < 70){alert("60~70");}else if(score > 70 && score < 80){alert("70~80");}else{alert("other")}</script>

浏览器常用调试功能(F12调出):
在这里插入图片描述

1.变量

命名规则:

允许大写、允许$或_符号开头、允许中文变量名
不允许数字开头

 var a

2.number

JS不区分小数和整数,Number

 123//整数123123.1//浮点数123.11.123e3//科学计数法-99//负数NaN //not a numberInfinity // 表示无限大

3.字符串

正常字符串使用单引号,或者双引号包裹 ‘abc’ “abc”

转义字符

 \'\n\t\u4e2d    \u##### Unicode字符 ​\x41    	ASCAII字符

多行字符串编写

 //	~键
var msg =`helloworld你好呀nihao`

模板字符串

 //	~键let name = 'Tom';let age = 3;var msg = `你好,${name}`

字符串长度

str.length

字符串的可变性,不可变
在这里插入图片描述

大小写转换

//注意,这里是方法,不是属性了
student.toUpperCase();
student.toLowerCase();

indexof()
返回某字符在字符串所在位置的索引
substring

[)区间为左闭右开
student.substring(1)//从第一个字符串截取到最后一个字符串
student.substring(1,3)//[1,3)

4.布尔值

true,false

5.逻辑运算

&& 两个都为真,结果为真
|| 一个为真,结果为真
! 真即假,假即真

6.比较运算符

 = 赋值== 等于(类型不一样,值一样,也会判断为true) 例如1"1"==的话为true=== 绝对等于(类型一样,值一样,结果为true

这是一个JS的缺陷,坚持不要使用 == 比较

注意:

  • NaN === NaN,这个与所有的数值都不相等,包括自己
  • 只能通过isNaN(NaN)来判断这个数是否是NaN

7.浮点数

 console.log((1/3) === (1-2/3))    //false
console.log(1/3)
//0.3333333333333333console.log(1-2/3)
//0.33333333333333337

尽量避免使用浮点数进行运算,存在精度问题!

 Math.abs(1/3-(1-2/3))<0.00000001	//true,可以这样判断是否相等,误差<0.000...001足够认为两者相等

8.数组

Java的数组必须是相同类型的对象
而JS中不需要这样
Array可以包含任意的数据类型

 //保证代码的可读性,尽量使用[]var arr = [1,2,3,4,5,'hello',null,true];//第二种定义方法new Array(1,2,3,4,5,'hello');

取数组下标:如果越界了,就会报undefined

长度

arr.length

注意:假如给arr.lennth赋值,数组大小就会发生变化~,如果赋值过小,元素就会丢失

indexOf,
通过元素获得下标索引

arr.indexOf(2)
1

字符串的"1"和数字 1 是不同的

slice()
截取Array的一部分,返回的一个新数组,类似于String中substring

push(),pop()尾部

push:压入到尾部
pop:弹出尾部的一个元素

unshift(),shift() 头部

unshift:压入到头部
shift:弹出头部的一个元素

排序sort()

(3)["B","C","A"]
arr.sort()
(3)["A","B","C"]

元素反转reverse()

(3)["A","B","C"]
arr.reverse()
(3)["C","B","A"]

concat()
在这里插入图片描述

注意:concat()并没有修改数组,只是会返回一个新的数组

连接符join
在这里插入图片描述

打印拼接数组,使用特定的字符串连接

多维数组

在这里插入图片描述

数组:存储数据(如何存,如何取,方法都可以自己实现!)

9.对象

若干个键值对

var 对象名 = {属性名:属性值,属性名:属性值,属性名:属性值
}
//定义了一个person对象,它有四个属性
var person = {name:"Tom",age:3,email:"123456798@QQ.com",score:66
}

Js中对象,{…}表示一个对象,建制对描述属性xxx:xxx,多个属性之间用逗号隔开,最后一个属性不加逗号! JavaScript中的所有的键都是字符串,值是任意对象!

取对象值

 person.name
//"Tom"person.age
//3

对象赋值
在这里插入图片描述

使用一个不存在的对象属性,不会报错! undefined
在这里插入图片描述

动态地删减属性,通过delete删除对象的属性
在这里插入图片描述
动态地添加,直接给新的属性添加值即可
在这里插入图片描述
xxx in xxx判断属性值是否在这个对象中
在这里插入图片描述

hasOwnProperty()判断一个属性是否是这个对象自身拥有的
在这里插入图片描述

10.流程控制

if判断
在这里插入图片描述

while循环
要避免程序死循环
在这里插入图片描述

for循环
在这里插入图片描述

forEach循环
ES5.1特性

在这里插入图片描述

for…in…
for x in obj:x是打出下标来
在这里插入图片描述

11.Map和Set集合

Map
在这里插入图片描述

Set:无序不重复的集合
在这里插入图片描述
遍历Map和Set
通过for…of…遍历(for x of obj:x是打出值来,而for x in obj的x是打出下标来)
在这里插入图片描述
在这里插入图片描述

严格检查模式use strict

<!--前提:IDEA需要设置支持ES6语法'use strict';严格检查模式,预防JavaScript的随意性导致产生的一些问题'use strict'必须写在JavaScript的第一行!局部变量建议都使用let去定义~--><script>'use strict';//局部变量let i=1;//ES6 let</script>

函数

定义函数

定义方式一
绝对值函数
在这里插入图片描述

一旦执行到return代表函数结束,返回结果!
如果没有执行return,函数执行完也会返回结果,结果就是undefined

定义方式二
在这里插入图片描述

function(x){…}这是一个匿名函数。但是可以吧结果赋值给abs,通过abs就可以调用函数!
方式一和方式二等价!

调用函数

abs(10)//10
abs(-10) //10

参数问题:javaScript可以传任意个参数,也可以不传递参数~
参数进来是否存在问题?
假设不存在参数,如何规避?
在这里插入图片描述

arguments
arguments是一个JS免费赠送的关键字;
代表,传递进来的所有参数,是一个数组!
在这里插入图片描述

问题:arguments包含所有的参数,我们有时候想使用多余的参数来进行附加操作。需要排除已有参数~

rest
以前:
在这里插入图片描述

ES6引入的新特性,获取除了已经定义的参数之外的所有参数~…
在这里插入图片描述

rest参数只能写在最后面,必须用…标识。

变量的作用域

在javascript中,var定义变量实际是有作用于的。
假设在函数体重声明,则在函数体外不可以使用~(闭包)
在这里插入图片描述

如果两个函数使用了相同的变量名,只要在函数内部就不冲突
在这里插入图片描述

内部函数可以访问外部函数的成员,反之则不行
在这里插入图片描述

假设,内部函数变量和外部函数变量,重名!
在这里插入图片描述

假设在JavaScript中,函数查找变量从自身函数开始~, 由“内”向“外”查找,假设外部存在这个同名的函数变量,则内部函数会屏蔽外部函数的变量。

提升变量的作用域

在这里插入图片描述

结果:x undefined
说明:js执行引擎,自动提升了y的声明,但是不会提升变量y的赋值;
在这里插入图片描述

这个是在javascript建立之初就存在的特性。 养成规范:所有 的变量定义都放在函数的头部,不要乱放,便于代码维护;
在这里插入图片描述

全局变量

在这里插入图片描述

全局对象window
在这里插入图片描述

alert() 这个函数本身也是一个window的变量;
在这里插入图片描述

javascript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域都没有找到,就会报错 Refrence

规范

由于我们的所有变量都会绑定到window上,。如果不同的js文件,使用了相同的全局变量,就会产生冲突—>如何减少这样的冲突?

唯一全局变量

在这里插入图片描述

把自己的代码全部放入自己定义的唯一空间名字中,降低全局命名冲突问题~
jQuery中就是使用的该方法:jQuery.name,简便写法:$()

局部作用域

在这里插入图片描述

ES6的let关键字,解决了局部作用域冲突的问题!

let关键字
在这里插入图片描述

建议大家都用let去定义局部作用域的变量;

常量

在ES6之前,怎么定义常量:只有用全部大写字母命名的变量就是常量;建议不要修改这样的值。
在这里插入图片描述

在ES6引入了

常量关键字 const
在这里插入图片描述

方法

定义方法

方法就是把函数放在对象的里面,对象只有两个东西:属性和方法
在这里插入图片描述

this.代表什么?拆开上main的代码看看
在这里插入图片描述

this是无法指向的,是默认指向调用它的那个对象的;

apply

在js中可以控制this指向
在这里插入图片描述
this指向了kuangshen,参数为空

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

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

相关文章

[剑指offer][JAVA]面试题第[17]题[打印从1到最大的n位整数][大整数][递归回溯]

【问题描述】[中等] 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n 1 输出: [1,2,3,4,5,6,7,8,9]说明&#xff1a;用返回一个整数列表来代替打印 n 为正整数【解答思路】…

数字图像处理技术的应 用领域

数字图像处理技术的应 用领域 图像处理技术的主要应用领域有&#xff1a; 生物医学、遥感技术、工业生产、军事技术、 通信技术、侦缉破案、气象预报、宇宙探索、考 古等&#xff0c;已经遍布国民经济的各个领域。 发展历史 20世纪20年代&#xff1a;报纸业 Bartlane电缆图…

前端基础3-2——JavaScript

目录内部对象DateJSONAJAX面向对象编程操作BOM对象&#xff08;重点&#xff09;操作DOM对象&#xff08;重点&#xff09;操作表单formjQuery如何巩固前端基础内部对象 标准对象 Date 基本使用 转换 JSON JSON是什么 在javascript中&#xff0c;一切皆为对象&#…

文件和结构体

LITTLESUN本来是在学队列啊&#xff0c;在手动模拟队列的地方发现了结构体这个小怪&#xff0c;为了能赶紧打队列大BOSS就赶紧跑过来填下文件和结构体的坑鸭&#xff01; 转载于:https://www.cnblogs.com/LITTLESUNwl/p/10435877.html

电磁波谱与可见光谱

电磁波谱与可见光谱 电磁辐射波 在实际的图像处理应用中&#xff0c;最主要的图像来源于电磁 辐射成像。 电磁辐射波包括无线电波、微波、红外线、可见光、 紫外线、X射线、γ射线。 电磁辐射波的波谱范围很广&#xff0c;波长最长的是无线电波 为3102m&#xff0c;其波长是…

[Leedcode][JAVA][第9题][回文数][数学法]

【问题描述】[简单] 判断一个整数是否是回文数。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。示例 1:输入: 121 输出: true 示例 2:输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。…

人眼的视觉特性

人眼的视觉特性 视觉系统基本构造 视觉过程 包括&#xff1a;光学过程&#xff1b;化学过程&#xff1b;神经处理过程 光学过程 物体在视网膜上成像 整体视觉过程 亮度适应能力 亮度适应能力 明亮较暗现象&#xff1f; 逐渐能够看清物体暗光适应(20~30s) 较暗明亮现象…

【解决问题】idea启动本地tomcat访问localhost:8080报404错误

把tomcat安装目录下webapp下的的ROOT文件夹配置到idea中 并且将/ROOT修改application context为 /

[Leedcode][第十题][剑指offer]面试题第[19]题[正则表达式][动态规划][递归][JAVA]

【问题描述】[困难] 请实现一个函数用来匹配包含. 和*的正则表达式。模式中的字符.表示任意一个字符&#xff0c;而*表示它前面的字符可以出现任意次&#xff08;含0次&#xff09;。在本题中&#xff0c;匹配是指字符串的所有字符匹配整个模式。例如&#xff0c;字符串"…

图像的采样和量化

图像的采样和量化 图像成像模型 图像的采样和量化 图像数字化 •将代表图像的连续(模拟)信号转换为离散(数字) 信号的过程称为图像数字化 •步骤&#xff1a;采样和量化 •主要技术 成像&#xff1a;光信息&#xff0d;>电信号 模数转换&#xff08;A/DConverter&…

【解决问题】IDEA配置Tomcat添加Deployment时没有Artifact

下面这里别忘了把整个项目也拉到左边的output-root&#xff08;拉完之后会有个WEB-INF&#xff09;

像素间的关系

像素间的关系 像素空间的关系 图像由像素组成&#xff0c;像素在图像空间上按规 律排列&#xff0c;相互之间有一定的联系。 像素间联系 像素的邻域&#xff0d;邻接关系 •4邻域—— N 4( p )&#xff1a; p ( x , y ): ( x 1, y ); ( x -1, y) ( x , y 1); ( x , y -1) •…

Spring Cloud面试题

为什么需要学习Spring Cloud 什么是Spring Cloud 设计目标与优缺点 设计目标 优缺点 Spring Cloud发展前景 整体架构 主要项目 Spring Cloud Config Spring Cloud Netflix Spring Cloud Bus Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth Spring Cloud Stre…

【发现问题】IDEA设置全局新创建文件默认换行符

今晚读《阿里Java开发手册》的代码格式部分中&#xff0c;第十条强制规约引起了我的注意。说的是&#xff0c; IDE中文件的换行符使用UNIX格式&#xff0c;不要使用Windows格式。 于是上网搜索为何如此&#xff0c;得到以下答案&#xff1a; 在开发中&#xff0c;有可能会遇到某…

图像文件类型

图像的分类 按照图像的动态特性&#xff1a; •静止图像和运动图像 按照图像的色彩&#xff1a; •灰度图像和彩色图像 按照图像的维数&#xff1a; •二维图像&#xff0c;三维图像和多维图像。 位图是通过许多像素点表示一幅图像&#xff0c;每个 像素具有颜色属性和位置…

[Leedcode][JAVA][第739题][每日温度][暴力][单调栈]

【问题描述】[中等] 根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 7…

MySQL学习笔记2

目录MySQL函数常用函数聚合函数&#xff08;常用&#xff09;数据库级别MD5加密&#xff08;拓展&#xff09;事务什么是事务索引索引的分类测试索引索引原则权限管理和备份用户管理MySQL备份规范数据库设计三大范式MySQL函数 常用函数 -- 数学运算SELECT ABS(-8) -- 绝对值 …

拓展资源

1&#xff0e;人类的视觉感知系统 眼睛中的光接收器主要是视觉细胞&#xff0c;它包括锥状体和杆状体。中央凹&#xff08;或称中心窝&#xff09;部 分特别薄&#xff0c;这部分没有杆状体&#xff0c;只密集地分布锥状体。它具有辨别光波波长的能力&#xff0c;因此&#xff…

HTML5前端开发学习路线建议,学习前端的必备知识点

Web前端开发工程师是一个很新的职业&#xff0c;是从事Web前端开发工作的工程师。主要进行网站开发&#xff0c;优化&#xff0c;完善的工作。网页制作是Web 1.0时代的产物&#xff0c;那时网站的主要内容都是静态的&#xff0c;用户使用网站的行为也以浏览为主。 一位好的Web前…

[Leedcode][JAVA][第990题][等式方程的可满足性][并查集]

【问题描述】[中等] 给定一个由表示变量之间关系的字符串方程组成的数组&#xff0c;每个字符串方程 equations[i] 的长度为 4&#xff0c;并采用两种不同的形式之一&#xff1a;"ab" 或 "a!b"。在这里&#xff0c;a 和 b 是小写字母&#xff08;不一定不…