web前端之JS

文章目录

  • 介绍
  • 一、JS引入到文件
      • 1.1 嵌入到HTML文件中
      • 1.2 引入本地独立JS文件
      • 1.3 引入网络来源文件
  • 二、JS的注释
  • 三、JS输出方式
  • 四、JS数据类型
      • 4.1 判断数据类型 typeof
      • 4.2 charAt返回指定位置的字符
      • 4.3 concat连接两个字符串
      • 4.4 substring从原字符串提取字符串并返回
      • 4.4 substr从原字符串提取字符串并返回
      • 4.5 indexof 确定在其他字符串出现的位置
      • 4.6 trim 删除部分字符串
      • 4.7 split 分割字符串
  • 五、DOM概述
      • 5.1 节点
      • 5.2 节点树
      • 5.3 document对象_方法/获取元素
          • 5.3.1 document.getElementsByTagName()
          • 5.3.2 document.getElementsByClassName()
          • 5.3.3 document.getElementByld()
      • 5.4 Element对象_方法
          • 5.4.1 Element.id
          • 5.4.2 Element.className
      • 5.5 Element获取元素位置


介绍

是一种轻量级的脚本语言,不具备开发操作系统的能力,只是用来编写控制其他大型应用程序的脚本。

一、JS引入到文件

1.1 嵌入到HTML文件中

JavaScript程序的单位是行(line),也就是一行一行的执行。一般情况下,一行就是一个语句。

<body><script>var age=20;</script>
</body>

1.2 引入本地独立JS文件

<body><script type="text/javascript" src="./itbaizhan.js"></script>
</body>

1.3 引入网络来源文件

<body><script src="http://code.jquery.com/jquery1.2.1.min.js"></script>
</body>

二、JS的注释

// 这是单行注释

/*
这是多行注释
*/

嵌入在html中的注释

 <!-- 这样可以注释-->

快捷键注释:ctrl+/

三、JS输出方式

在浏览器中弹出一个对话框,然后把要输入的内容展示出来,alert都是把要输出的内容首先转换为字符串后输出的
alert (“要输出的内容”); //这个输出的是弹出框
document.write(“要输出的内容”); //这个直接输出到页面

在控制台输出内容
console.log(“要输出的内容”);

四、JS数据类型

4.1 判断数据类型 typeof

typeof 123  //"number",数字类型

4.2 charAt返回指定位置的字符

var s=new String("itbaizhan");
s.charAt(1);  //"t"
s.cgharAt(s.length-1);  //"n"

如果参数为负数,或大于等于字符串长度,charAt返回空字符串

"itbaizhan".charAt(-1);  //""
"itbaizhan".charAt(9);  //""

4.3 concat连接两个字符串

var st1="123";
var st2="456";
console.log(st1.concat(st2));	//123456

如果参数不是字符串,concat方法会将其转成字符串,然后再连接

var st1=123;
var st2="456";
console.log(st1.concat(st2));	//123456

4.4 substring从原字符串提取字符串并返回

它的第一个参数表示子字符符串的开始位置,第二个表示结束位置(返回结果不含该位置)

"itbaizhan".substring(0,2)  //"it"

如果省略第二个参数,则表示字符串一直到原字符串的结束

"itbaizhan".substring(2) //"baizhan"

如果第一个参数大于第二个参数,substring方法会自动更换两个参数的位置

"itbaizhan".substring(9,2); //"baizhan"
//等同于
"itbaizhan".substring(2,9); //"baizhan"

如果参数是负数,substring方法会自动将负数转为0

"itbaizhan".substring(-3);	//"baizhan"
"itbaizhan".substring(2,-3);	//"it"

4.4 substr从原字符串提取字符串并返回

substr用法与substring相同,不同的是substr第二个参数代表的是子字符串的长度。

"itbaizhan".substr(2,7); //"baizhan"

省略第二个参数,则表示从子字符串一直到原字符串的结束

"itbaizhan".substr(2); //"baizhan"

如果第一个参数是负数,表示倒数计算的字符位置。如果第二个是负数,将被自动转为0,因此会返回空字符串。

"itbaizhan".substr(-7); //"baizhan"
"itbaizhan".substr(4,-1); //""

4.5 indexof 确定在其他字符串出现的位置

用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是开始匹配的位置

"helloworld".indexof("o"); //4
"helloworld".indexof("p"); //-1

此方法还可以接受第二个参数,表示从该位置开始向后匹配

"hello world".indexof("o",6);  //7

4.6 trim 删除部分字符串

用于去除字符串两端的空格,返回一个新的字符串

" hello world ".trim();

此方法不仅能去除空格,还可以去除制表符、换行符、回车符

4.7 split 分割字符串

按照指定规则分割字符串,返回一个由分割出来的子字符串组成的数组

"it|sxt|baizhan".split("|");  //["it","sxt","baizhan"]

如果分割为空字符串,则返回原字符串的每一个字符

"a|b|c".split("");	// ["a","|","b","|","c"]

如果省略参数就会返回原字符串

"a|b|c".split();	// ["a|b|c"]

还可以接受第二个参数,限定返回数组的最大成员数量

"a|b|c".split("|",0);	// []
"a|b|c".split("|",1);	// ["a"]

五、DOM概述

DOM是JS操作网页的接口,全称是文档对象模型。作用是将网页转为一个JavaScript对象,从而可以用脚本进行各种操作。
浏览器会根据 DOM 模型,将结构化文档HTML解析成一系列的节点,再由这些节点组成一个树状结构(DOMTree)。所有的节点和最终的树状结构,都有规范的对外接口
DOM 只是一个接口规范,可以用各种语言实现。所以严格地说,DOM 不是JavaScript 语法的一部分,但是DOM 操作是JavaScript 最常见的任务,离开了 DOM,JavaScript 就无法控制网页。另一方面,JavaScript也是最常用于 DOM 操作的语言。

5.1 节点

DOM 的最小组成单位叫做节点 (node) 。文档的树形结构(DOM 树),就是由各种不同类型的节点组成每个节点可以看作是文档树的一片叶子。
在这里插入图片描述

Document:整个文档树的顶层节点
DocumentType: doctype标签
Element: 网页的各种HTML标签
Attribute: 网页元素的属性 (比如class=“right”)
Text: 标签之间或标签包含的文本
Comment:注释
DocumentFragment: 文档的片段

5.2 节点树

一个文档的所有节点,按照所在的层级可以抽象成一种树状结构。这种树状结构就是 DOM 树。它有一个顶然后子节点又有自己的子节点,就这样层层衍生出一个金字塔结构,层节点,下一层都是顶层节点的子节点倒过来就像一棵树。
浏览器原生提供document节点,代表整个文档。

除了根节点,其他节点都有三种层级关系

父节点关系 (parentNode)):直接的那个上级节点
子节点关系 (childNodes) : 直接的下级节点
同级节点关系 (sibling) : 拥有同一个父节点的节点

Node.nodeType 属性
不同节点的nodeType属性值和对应常量如下:

文档节点 (document) : 9,对应常量Node.DOCUMENT_NODE
元素节点 (element) : 1,对应常量Node.ELEMENT_NODE
属性节点 (attr) : 2,对应常量Node.ATTRIBUTE NODE
文本节点 (text) :3,对应常量Node.TEXT_NODE
文档片断节点 (DocumentFragment) : 11,对应常量Node.DOCUMENT FRAGMENT NODE

5.3 document对象_方法/获取元素

5.3.1 document.getElementsByTagName()

此方法搜索HTML标签名,返回符合条件的元素。它的返回值是一个类似数组对象,可以实时反应HTML文档的变化。如果没有任何匹配的元素,就返回一个空集

var paras=document.getElementsByTagName('p');

如果传入*,就可以返回文档中所有html元素

var allElements =document.getElementsByTagName('*');
5.3.2 document.getElementsByClassName()

返回一个类似数组的对象,包括了所有class名字符合指定条件的元素,元素的变化实时反映在返回结果中

var elements=document.getElementsByClassName(names);

由于class是保留字,所以JS一律使用classname表示CSS的class
参数可以是多个,他们之间使用空格分隔

var elements=document.getElementsByClassName('foo bar');
5.3.3 document.getElementByld()

返回匹配指定id属性的元素节点,如果没有发现匹配的节点 ,则返回null

var elem=document.getElementById('paral');

5.4 Element对象_方法

Element对象对应网页元的html元素,每一个html元素,在dom树上都会转化成一个element节点对象。

5.4.1 Element.id

Element属性返回指定元素的id属性,该属性可读写。

// html代码为<p id="foo">
var p=document.queryselector('p');
p.id;  //'foo'
5.4.2 Element.className

className属性用来读写当前元素节点的class属性,它的值是一个字符串,每个class之间用空格分割

//html代码	<div class="one two three" id="mydiv"> </div>
var div=document.getElementById('mydiv');
div.className;

5.5 Element获取元素位置

在这里插入图片描述

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

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

相关文章

Vue输入框或者选择框无效,或者有延迟

问题剖析 使用Vue这种成熟好用的框架&#xff0c;一般出现奇奇怪怪的问题都是因为操作不当导致的&#xff0c;例如没有合理调用组件、组件位置不正确、没有合理定义组件或者变量、样式使用不当等等... 解决方案 如果你也出现了输入框输入东西&#xff0c;但是没有效果…

(二)结构型模式:1、适配器模式(Adapter Pattern)(C++实现示例)

目录 1、适配器模式&#xff08;Adapter Pattern&#xff09;含义 2、适配器模式应用场景 3、适配器模式的UML图学习 4、C实现适配器模式的示例 1、适配器模式&#xff08;Adapter Pattern&#xff09;含义 将一个接口转换为客户端所期待的接口&#xff0c;从而使两个接口…

最强自动化测试框架Playwright(11)- 录制视频

视频 使用playwright&#xff0c;您可以录制测试视频。 录制视频 视频在测试结束时在浏览器上下文关闭时保存。如果手动创建浏览器上下文&#xff0c;请确保等待 browser_context.close&#xff08;&#xff09;。 context browser.new_context(record_video_dir"vid…

互联网医院办理|沈阳互联网医院|医疗行业新机遇

互联网医院的办理不仅能为人们带来更便利、高效的医疗服务&#xff0c;更能缓解医疗资源紧张的问题&#xff0c;推动医疗服务的质量和效率提升。在这个充满信息化和科技变革的时代&#xff0c;互联网医院无疑是医疗行业向前迈进的重要一步。 1、提供全天候的医疗服务&#xff1…

重复delete 对象指针后的 异常调用栈怪异 解析

Release版VC6 MFC程序 程序正常退出时得到一个如下异常调用栈&#xff1a;​ 0:000> kb# ChildEBP RetAddr Args to Child WARNING: Frame IP not in any known module. Following frames may be wrong. 00 0019eb94 76124f2f 00c3afc8 0019ebdc 001…

Electron+vue3项目使用SQLite3数据库

SQLite 是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库不一样&#xff0c;我们不需要在系统中配置。 就像其他数据库&#xff0c;SQLite 引擎不是一个独立的进程&am…

ChatGPT应用在律师行业需谨慎,南非有律师被它的幻觉误导了!

ChatGPT自去年以来大受欢迎&#xff0c;没想到它这么快会出现在法庭上。 最近&#xff0c;南非约翰内斯堡地区法院审理一个案件时&#xff0c;有律师因为使用ChatGPT生成的虚假参考资料而受到指责。[1] 根据《星期日泰晤士报》的报道&#xff0c;法院判决认为&#xff0c;该名…

IDEA Run SpringBoot程序步骤原理

这个文章不是高深的原理文章&#xff0c;仅仅是接手一个外部提供的阉割版代码遇到过的一个坑&#xff0c;后来解决了&#xff0c;记录一下。 1、IDEA Run 一个SpringBoot一直失败&#xff0c;提示找不到类&#xff0c;但是maven install成功&#xff0c;并且java -jar能成功ru…

pytest之测试用例执行顺序

前言 在unittest框架中&#xff0c;默认按照ACSII码的顺序加载测试用例并执行&#xff0c;顺序为&#xff1a;09、AZ、a~z&#xff0c;测试目录、测试模块、测试类、测试方法/测试函数都按照这个规则来加载测试用例。 而 pytest 中的用例执行顺序与unittest 是不一样的&#…

日常BUG ——乱码

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 A系统使用Feign调用B系统时&#xff0c;传递的String字符串&#xff0c;到了B系统中变为了乱…

算法基础之插入排序

1、插入排序基本思想 插入排序的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place排序&#xff08;即只需用到O(1)的额外空间的排序&#xff09;&a…

模拟实现消息队列项目(系列5) -- 服务器模块(虚拟主机)

目录 前言 1. 创建VirtualHost 1.1 定义虚拟主机的相关属性 1.2 VirtualHost 构造方法 1.3 交换机和队列的创建和删除 1.3.1 交换机操作 1.3.2 队列操作 1.4 绑定的创建和删除 1.5 发送消息到指定的队列/交换机 2. 实现路由规则Router 2.1 checkBindingKey() 2.2 checkRoutin…