2023/6/14总结

JS的学习:

JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互的效果

主要作用:

  • 网页特效
  • 表单验证
  • 数据交互

JS的组成

2023/6/14总结_第1张图片

ECMAScript

规定了js基础的语法核心知识

Web APIs

DOM:操作文档,对页面元素进行移动、大小、添加删除操作。

BOM:操作浏览器,比如页面弹窗、检测窗口宽度、存储数据到浏览器。

JS引用方式:(在body标签里面)

JS输出语句:

2023/6/14总结_第2张图片

输入语句:

 2023/6/14总结_第3张图片

console.log 控制台输出 

需要注意的是:alert()和prompt()会跳过页面渲染先被执行。

 JS声明变量

let 变量名称

声明数组:

let 数组名=[数据1,数据2……数据n]

拼接字符串和变量

2023/6/14总结_第4张图片

JS类型转换:

  • 隐式转换

+号俩边只要有一个是字符串,都会变成字符串   +号作为正号解析可以转换成数字类型

- * /都会把数据变成数字类型

  • 显示转换:

Number(数据)

转换成数字类型

如果字符串里面有非数字,则结果为NaN

NaN是number的一种,代表非数字

parseInt(数据)转换为整型

parseFloat(数据)转换为浮点型

==只要值相等,就会返回true

而===需要数据类型和值一样的都相等才能返回true

开发中,判断是否相等,用的是===

关于JavaScript的一个案例:

2023-06-14 01-13-33-214




    
    
    demo0612



    

.xy
{

    display:flex;
    align-items:flex-end;
    text-align:center;
    width:500px;
    height:500px;
    margin:10px auto;
    border-left:2px solid #ccc;
    border-bottom:2px solid #ccc;
}
.y
{
    margin:0px 20px 0 20px;
    display:flex;
    width:80px;
    background-color:pink;
    flex-direction:column;
    justify-content:space-between;
}
.y h4
{
    margin-bottom:-35px;
}
.y span
{
    margin-top:-20px;
}

函数:

function 函数名称()

{

        语句

}

调用和c语言一模一样——函数名称()

匿名函数

  • 函数表达式:

fn=function();   这个里面没有函数名称,调用的时候是fn()  

  • 立即执行函数

(function(){})()

(funtion(){}())

对象:

 增加对象属性:

删除对象属性 

 查找:

2023/6/14总结_第5张图片

定义方法:

2023/6/14总结_第6张图片

 遍历对象的属性:

2023/6/14总结_第7张图片

2023/6/14总结_第8张图片

遍历对象数组:

2023/6/14总结_第9张图片

 JavaScript内置对象-Math

大部分和c的差不多,需要注意下面这俩个不一样的

  • cell  向上取整
  • floor  向下取整

在JavaScript中,const修饰的基本数据类型是不可以改变的,修饰的对象数据类型地址不变,就可以改变。

 DOM

DOM是文档对象类型,是用来呈现以及与任意HTML或者XML文档交互的API(就是浏览器提供的一套专么用来操作网页内容的功能

DOM作用:开发网站内容特效和实现用户交互。

DOM树

  • 将HTML文档以树状结构直观的表现出来,我们称之为文档或者DOM树
  • 描述网页内容关系的名词

作用:直观的体现了标签与标签之间的关系

DOM对象

  • 浏览器根据html标签生成的js对象
  • 所有的标签属性都可以在这个对象上面找到,修改这个对象的属性会自动映射到标签身上

DOM的核心思想:把网页内容当作对象来处理

DOM里面最大的对象是document,所有document提供的属性和方法是用来访问和操作网页内容的

网页所有的内容都在document里面。

获取DOM元素

  • 借助css选择器:

document.querySelector('CSS选择器')   必须要加引号,否则会当成变量

每次选择的都是第一个,没有就是null

document.querySelectorAll('CSS选择器')  返回的是一个集合

 题解:

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这道题 其实可以把这个看成一个循环的数组

每次都执行一种操作:

把第一行放到最后一行,其他的往上移动

把第一列放到最后一列,其他的往就移动

2023/6/14总结_第10张图片

 然后就能通过求余就能对应上对应的列

#include
#define Maxsize 35
char a[Maxsize][Maxsize],b[Maxsize][Maxsize];
int main()
{
	int n,m,i,j,tx,ty,x,y,flag=0;
	scanf("%d%d",&n,&m);
	for(i=0;i

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这是一题dfs题目,就判断四个方向的是否都是#就可以了。

#include
#define Maxsize 110
char a[Maxsize][Maxsize];
int next[4][2]={-1,-1,1,-1,-1,1,1,1},n,m;
int is(int x,int y)
{
	int i,j,k,tx,ty;
	if(a[x][y]!='#') return 0;
	for(k=1;;k++)
	{
		for(i=0;i<4;i++)
		{
			tx=x+k*next[i][0];
			ty=y+k*next[i][1];
			if(tx<0||ty<0||tx>=n||ty>=m) return k-1;
			if(a[tx][ty]!='#') return k-1;
		}
	}
	return n>m?m:n;
}
int main()
{
	int i,j,b[Maxsize]={0},k,r;
	int tx,ty;
	scanf("%d%d",&n,&m);
	for(i=0;im?m:n;
	//第一个数字是min(n,m)
	//后面的数字代表0-n的×个数
	for(i=0;i

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目是一个简单的二分的题目

题目大意是一个字符串都是由01组成,前面全部都是0 ,后面全部都是1,找到0 变成1的那个中介点。

#include
#define Maxsize 200010
int a[Maxsize];
int main()
{
	int n,i,l,r,m,x;
	scanf("%d",&n);
	l=1,r=n;
	for(i=2;i

 第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目的大致意思是 找到最长的连续是o的字串,-ooooo算,ooooo-也算

#include
#define Maxsize 200100
int MAX(int a,int b)
{
	if(a>b) return a;
	return b;
}
int main()
{
	int n,i,j=0,res=-1;
	char str[Maxsize]={0};
	scanf("%d",&n);
	scanf("%s",str);
	
	for(i=0;i

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目是根据所给的信息构成一个数字,删掉第一个开头的数字,或者添加一位数字在后面,或者查看这个数字。

我们可以用数组去构造一个队列去存储各位数字。另外一个数字存储10、100、100这样的数字,但是需要先求余,不然最后数字会很大,记录这些数字只是为了好操作对于删除第一位数字,到时候只需要用res-对应的位数所指向的10的n次幂就可以了,需要注意的是  十年OI一场空,不开long long见祖宗。

#include
#include
#define Maxsize 600010
#define MOD 998244353
long long a[Maxsize]={0},b[Maxsize]={0};
int main()
{
	long long t,i,choose;
	long long res=1,l=0,r=1;
	a[0]=1;b[0]=1;
	for(i=1;i

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这道题我刚开始想的是直接输出n*n(如果满足的话)

但是最后一个案例过不了,估计是被卡了。

这道题必须要求对应的最小的大于等于M的一个合数,因此就转化成需要找到俩个数字

需要满足俩个条件:a<=b,a*b>=m 

那么就可以直接穷举,我们从1-n/2,去穷举a的值,就能推出b的值,那m去除以a,如果有余数就b=m/a+1,然后用res比较得出最小值即可。

#include
#include
#define INF 2e18
unsigned long long MIN(unsigned long long a,unsigned long long b)
{
	if(aj) break;
		}
		if(res==INF) puts("-1");
		else printf("%llu\n",res);
	}
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

 这道题用set很容易就做出来了

#include
#include
#define Maxsize 200010

using namespace std;

set myset;

int a[Maxsize];
int main()
{
	int n,m;
	int i;
	scanf("%d%d",&n,&m);
	for(i=0;i

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

 这道题其实是一个计算

计算所有的区间和x值,然后看区间是否对的上,根据区间去计算即可

#include
#define N 100010
struct node
{
	long long x;
	long long count;
}a[N][2];
int main()
{
	long long l,n1,n2,i,x,y,j,sum,max;
	scanf("%lld%lld%lld",&l,&n1,&n2);
	for(i=1;i<=n1;i++)
	{
		scanf("%lld %lld",&a[i][0].x,&a[i][0].count);
		a[i][0].count+=a[i-1][0].count;
	}
	for(i=1;i<=n2;i++)
	{
		scanf("%lld %lld",&a[i][1].x,&a[i][1].count);
		a[i][1].count+=a[i-1][1].count;
	}
	sum=0;
	for(i=1,j=1;i<=n1&&j<=n2;)
	{
		if(a[i][0].x==a[j][1].x)
		{
			if(a[i][0].counta[i-1][0].count)
				{
					max=a[j-1][1].count;
				}
				else max=a[i-1][0].count;
				
				sum+=a[i][0].count-max;
				i++;
			}
			else if(a[i][0].count>=a[j][1].count&&a[j][1].count>a[i-1][0].count)
			{
				if(a[j-1][1].count>a[i-1][0].count)
				{
					max=a[j-1][1].count;
				}
				else max=a[i-1][0].count;
				
				sum+=a[j][1].count-max;
				j++;
			}
			else if(a[i][0].count=a[j][1].count)
			{
				j++;
			}
		}
		else if(a[i][0].counta[j][1].count) j++;
		else 
		{
			i++,j++;
		}
	}
	printf("%lld\n",sum);
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这是一个遍历的题目,直接遍历即可

#include
#define N 500010
int a[N]={0};
int main()
{
	int n,t,i,x,y,j;
	int p,q;
	p=q=1;
	scanf("%d%d",&n,&t);
	for(i=1;i<=t;i++)
	{
		scanf("%d",&x);
		if(x==2)
		{
			scanf("%d",&y);
			a[y]=-1;
		}
		else 
		{
			if(x==1)
			{
				a[p]=1;
				p++;
			}
			else if(x==3)
			{
				while(a[q]==-1)
				{
					q++;
				}
				printf("%d\n",q);
			}
		}
	}
	return 0;
}

你可能感兴趣的:(javascript,前端,html)