JS基础知识2

【D3.js in Action 3 精译_012】1.2.5 与 D3 相关的 JavaScript 基础知识 本篇为《D3.js in Action》全新第三版第一章1.2.5小节内容,主要介绍了与 D3.js 相关的 JavaScript 基础知识,重点讲解了 JS 中的方法链式调用以及数组对象的常见接口方法,如 forEach、map、filter、find 等。 阅读详情

JS基础知识2:
BOM,DOM,事件

BOM:(Brower object model)

Window:(如果不指定特定window对象,那么就是当前window对象)
	无需创建,可以使用window,也可以省略
	方法:
		1.alter("xxxx")         //提示弹窗,阻塞,只能确定,返回值undefined
		2.confirn("xxxx")		//提示弹窗,确定:返回true,取消:false
		3.window.close()		//关闭调用者窗口对象的窗口
		4.window.open("url")	//打开窗口,返回出窗口对象
		5.setTimeout(function 对象,millisec)   
			//millisec毫秒后,执行一次,返回id,用于clearTimeout()
		6.setInterval(function 对象,millisec) //间隔millisec毫秒,重复执行
			//millisec毫秒后,重复执行,返回id,用于clearIntercal()
		7.clearTimeout("id")	//取消指定setTimemout()
		7.clearInterval("id")	//取消指定setInterval()
	属性:
		1.history				//访问过的 URL
		2.location				//当前URL的信息
		3.Navigator				//浏览器的信息
		4.Screen				//客户端显示屏幕的信息
		5.document				//window.document.write()

location:
	无需创建,使用location
	方法:
		location.reload()      使用location对象,刷新页面
	属性:
		href:   url			   设置url,跳转页面
	举例:
		var refresh = document.getElementById("refresh");
		refresh.onclick = function(){
			location.reload();
		}


history:
	无需创建,使用history
	方法:
		go()				go(+n) : forward几个;go(-n) : back几个
		back()				可加载当前窗口的历史列表中的前一个URL(如果存在)
		forward()			可加载当前窗口的历史列表中的下一个URL(如果存在)
	属性:
		length				返回浏览器历史列表中的 URL 数量

DOM:(document object model)

通过document获取element后,
element对象可以是有通用的方法
再加上本身标签 HTML的属性设置
再加上元素的event属性设置,结合function对象,实现事件监听机制



核心DOM:
	结点对象:Node (父节点.xxx)
	元素对象:Element
	文档对象:Document 
	属性对象:Attribute
	文本对象:Text
	注释对象:Comment

0.结点对象:Node (父节点.xxx)

方法:
	createElement("html标签")
	appendChild(element)	为父节点添加element子元素	
	replaceChild(element)	为父节点用新节点替换子元素	
属性:
	parentNode: 返回节点的父节点
举例:
						html
	<br>
	<a href="javasrcipt:void(0);" id = "del" value = "删除 "> 删除yes </a>
	<br>
	<a href="javasrcipt:void(0);" id = "add" value = "添加 "> 添加yes </a>
	

						js
	var del = document.getElementById("del");
	del.onclick = function() {
		var big = document.getElementById("id1");
		var small = document.getElementById("id2");
		big.removeChild(small);
	}

	var add = document.getElementById("add");
	add.onclick = function() {
		var big = document.getElementById("id1");
		var small = document.createElement("div");
		small.setAttribute("id","id2");
		big.appendChild(small);
	}

1.文档对象:Document

无需创建,使用document
方法:
	getElementById();返回拥有指定 id 的第一个对象的引用
	getElementsByTagName();  返回指定标签的元素对象们
	getElementsByClassName();返回指定类名的元素对象们
	getElementsByName();	返回指定Name的元素对象们
	createAttribute(name);
	createComment(data);
	createElement(name);
	createTextNode(data);

2.元素对象:Element

通过document 获取和创建
方法:
	removeAttribute();   //删除属性
	setAttribute();		 //设置属性

	element.setAttribute(attributename,attributevalue)
	element.removeAttribute(attributename)
应用:
	1.通过使用innerHTML设置和获取标签体
	2.使用html元素对象的属性
	3.使用元素的style的属性设置,
	或是元素改其className,id等可以使用提前在css中设置好的信息
	都可以控制元素样式

		table = document.getElementById("table");
		table.style.border = "5px solid blue";

举例:

1.例子1

				html
<img alt="null" src="../pictures/off.jpg" id = "light">
<title id = "title">hello anyBody</title>

				js
var light = document.getElementById("light");
var title = document.getElementById("title");

light.onmouseover = function(){
	
	light.src = "../pictures/on.jpg"
	title.text = "on"; 
}

light.onmouseout = function(){
	title.innerHTML = "off"; 
	light.src = "../pictures/off.jpg"
}

2.例子2

//<a> 的 href : "javasrcipt:void(0);"  才能停留在当前页面	
	
			html
<div id = "id1">
big<div id = "id2">small</div>
</div>
<br>
<a href="javasrcipt:void(0);" id = "del" value = "删除 "> 删除yes </a>
<br>
<a href="javasrcipt:void(0);" id = "add" value = "添加 "> 添加yes </a>

			js
var del = document.getElementById("del");
del.onclick = function() {
	var big = document.getElementById("id1");
	var small = document.getElementById("id2");
	big.removeChild(small);
}


var add = document.getElementById("add");
add.onclick = function() {
	var big = document.getElementById("id1");
	var small = document.createElement("div");
	small.setAttribute("id","id2");
	big.appendChild(small);
}

3.例子3

			--css--
table{
	border : 1px solid blue;
}
tr{
	border: 1px solid blue;
	text-align :center;	
}

td,th{
	width : 100px;
}
		   --html--

<table id = "table" align = "center">
<tr>
	<th> 编号</th>
	<th> 姓名</th>
	<th> 年份</th>
</tr>
</table>
			
			--js--
//添加Element_tr
var tr = document.createElement("tr");

//添加Element_td和TextNode_text,td添加text子节点
var td1 = document.createElement("td");
var text = document.createTextNode("9527");
td1.appendChild(text);

var td2 = document.createElement("td");
var text2 = document.createTextNode("李佳");
td2.appendChild(text2);

var td3 = document.createElement("td");
var text3 = document.createTextNode("3years");
td3.appendChild(text3);

//tr添加td子节点
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);

//table添加tr子节点
table = document.getElementById("table");
table.append(tr);			

4.例子4

			--css--
table{
	border : 1px solid blue;
}
tr{
	border: 1px solid blue;
	text-align :center;	
}

td,th{
	width : 100px;
}
		   --html--

<table id = "table" align = "center">
<tr>
	<th> 编号</th>
	<th> 姓名</th>
	<th> 年份</th>
</tr>
</table>	
		--js--
table = document.getElementById("table");
table.innerHTML += "<tr><td>9527</td><td>吴昊</td><td>6years</td> </tr>"

事件:

(基于元素):onclick单击,ondblclick双击,onblur失去焦点,
 onmousedown(可接受event形参)鼠标按下,
 onload加载完成(让window来做,不使js出现空指针异常)
 onkeydown(可接受event形参)键盘按下,
 onchange域的内容被改变(select标签)
 onsubmit提交(表单form)

举例://仅对body中的元素监听,而不是全部的空白区域。

例子1:onmousedown()

<body id = "body">
		...
</body>


var body = document.getElementById("body");
body.onmousedown = function(event){
	var btnNum = event.button;
	if (btnNum==2) {
	  alert("您点击了鼠标右键!")
	  }
	else if(btnNum==0) {
	  alert("您点击了鼠标左键!")
	  }
	else if(btnNum==1) {
	  alert("您点击了鼠标中键!");
	  }
	else{
	  alert("您点击了" + btnNum+ "号键,我不能确定它的名称。");
	  }
}

例子2:鼠标移动,获取光标,并显示

<div id = "xy"></div>
<img src="D:\壁纸\new壁纸\165424.jpg" alt ="jpg" id = "jpg">

window.onload = function(){
	var xy = document.getElementById("xy");
	var text = document.createTextNode("");
	xy.append(text);
	var jpg = document.getElementById("jpg");
	
	jpg.onmousemove = function (event){
	x=event.clientX;
	y=event.clientY;
	text.data = "X 坐标: " + x + ", Y 坐标: " + y;
	}
}

例子3:onsubmit,阻止提交

		--html--
<form action="#" method="get" id = "form">
<label for = "username">用户名: </label><input name = "username" id = "username" placeholder="用户名"><br>
<input  type = "submit" value = "提交表单">
</form>
		
		--js--
window.onload = function(){
	var form = document.getElementById("form");
	form.onsubmit = function() {
		return false;
	}
}

参考资料:

	https://www.w3school.com.cn/
vue2中使用 arcgis for js 的个人总结基础知识 ( 一 ) arcgis for js 的个人总结基础知识 阅读详情

相关推荐

华为/H3C/锐捷交换机配置命令对比表:一张图搞定VLAN划分与端口设置

本文详细对比了华为、H3C、锐捷三大品牌交换机在VLAN划分与端口设置中的配置命令差异,提供从基础配置到高级功能的横向对比表,帮助网络工程师快速掌握多品牌设备混用环境下的配置技巧,提升工作效率。

rust6ferris的博客 699

js(JavaScript)基础知识2

JavaScript运算符和表达式(算术运算符,一元运算符,逻辑运算符(布尔运算符),关系运算符(比较运算符),赋值运算符,三目运算符, 运算符的优先级); JavaScript流程控制语句( 条件语句,循环程序结构,跳转语句,调试)

weixin_67275645的博客 164

Android TV开发:RecyclerView焦点控制实践与优化

在Android TV应用开发中,焦点控制是提升用户体验的关键技术。不同于移动端触摸交互,TV端通过遥控器方向键导航,需要精确的焦点管理机制。RecyclerView作为动态列表的核心组件,其焦点控制涉及视图复用、导航逻辑和视觉反馈等核心技术点。通过合理配置focusable属性、自定义焦点查找算法以及优化动画性能,开发者可以解决TV端常见的焦点跳转异常、视觉反馈延迟等问题。特别是在视频点播、智能家居控制等场景中,良好的焦点控制能显著提升操作效率。本文结合网格布局焦点环绕、分页加载焦点保持等实战案例,深入解

weixin_34195142的博客 469

Javascript 编程基础(2)基础知识 | 2.1、javascript与Node.js

现代Web开发中,两者通常配合使用,JavaScript处理客户端逻辑,Node.js处理后端服务,共同构成完整的JavaScript全栈解决方案。

个人技术博客 673

VMware桥接模式实战:用手机热点给Linux虚拟机共享网络(附WiFi适配技巧)

本文详细介绍了在移动办公场景下,如何为VMware中的Linux虚拟机配置桥接模式,以通过手机热点共享网络。文章深入解析了桥接模式在无线环境下的工作原理,提供了从主机端准备、VMware设置到Linux虚拟机内部配置的完整实战步骤,并针对手机热点的特殊性,分享了MTU优化、DNS配置及常见网络问题的诊断与解决方案,帮助用户实现稳定高效的移动虚拟化办公。

2y3u4i5o6p的博客 1196

RocketMQ 为什么要自己做一个 NameServer ?RocketMQ 5.x 版本中的 proxy、controller 和 container 分别有什么用 ?

1.独立运行的分散结构 2.简化实现,容忍部分数据不一致 Proxy:多语言支持、简化开发 Controller: 提高 Broker 的性能 Container:提高资源利用率,平衡负载

xaiobit_hl的博客 1489

JavaScript(JS)基础知识分享2

本文全面介绍了JavaScript的核心知识体系,包括DOM操作、BOM操作、异步编程和面向对象编程等关键内容。

2402_88266590的博客 422

云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库

基于前面搭建的3节点 Kubernetes 集群,今天我们使用 Registry2 搭建私有镜像仓库,这在镜像安全性以及离线环境下运维等方面具有重要意义。作为测试环境,本次使用 Registry2 搭建了私有镜像仓库,实际生产环境建议使用 Harbor;创建了一个 local-storage 的 StorageClass ,并使用本地磁盘的方式创建使用 PV ,实际建议使用 NFS 。

Heartsuit的博客 2461

php插入js教程,JavaScript_JavaScript入门教程(2) JS基础知识,在什么地方插入 JavaScript  Ja - phpStudy...

JavaScript入门教程(2) JS基础知识在什么地方插入 JavaScriptJavaScript 可以出现在 HTML 的任意地方。使用标记…,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在之前插入也不成问题。不过如果要在声明框架的网页(框架网页)中插入,就一定要在之前插入,否则不会运行。基本格式复制代码 代码如下:第二行和第四行的作用,是让不懂标记的浏览器忽略 Ja...

weixin_39603609的博客 178

Android16 rk3576添加触摸点数上限到40个点

本文介绍了在Android 16系统上实现40点触摸支持的修改方案。相比Android 15,Android 16对API添加有更严格的要求,需要在MotionEvent.java中添加@FlaggedApi批注。主要修改包括:1)在input_framework.aconfig中定义flag;2)在MotionEvent.java中添加40个AXIS_GENERIC轴常量并添加批注;3)将32位指针ID处理改为64位适配;4)更新相关API文档。修改涉及多个核心文件,包括PointerController

tzj1058756809的博客 381

【OpenClaw从入门到精通】第35篇:电商“龙虾”掘金记——用OpenClaw实现小红书/抖音/淘宝全自动矩阵运营(2026实测版)

2026年,OpenClaw智能体已成为电商运营的“效率革命工具”,其多平台自动化能力让单人可完成传统3-5人的工作量。本文基于真实商业案例(来源:海报新闻、阿里云开发者社区等),系统拆解OpenClaw在小红书、抖音、淘宝的全链路运营方案:从阿里云部署搭建基础环境,到三大平台核心技能安装配置,再到跨平台矩阵工作流落地;同时揭秘代部署、模板售卖、轻定制、内容套利四大变现模式,并详解Token成本控制、安全风险规避等关键问题。文中所有代码均经过2026年3月实测验证,提供完整可复现的技术方案,帮助读者快速搭建

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2036

JavaScript 基础知识2

JavaScript 基础知识2

yavlgloss的博客 1055

Python代码加密与发布方案详解

本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P

数据知道的博客 1万+

JavaWeb笔记---JavaScript基础知识2(js中的事件)

1.js中的事件 定义:什么是事件?事件是电脑输入设备与页面进行交互的响应,能称之为事件

SLSLSLSLSLSLS的博客 347

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

js全面学习-javascript的基础知识-概念篇(2)

为了不让每一篇博客的篇幅过长,我会分部分让大家介绍JS 我相信不是每一个学习或者想要学习js的同学都是有基础的,所以W3C上面比较基础的几部分我也不想省略,会的朋友们可以一笔带过,而我呢就当加深一下印象。 第一点、运算符 这是W3C有关运算符的介绍 里面的图标可以清晰的表达运算符作用,为了节省文章长度,让大家不至于看太慢,我在此省略。 第二点、比较 比较运算符 逻...

余光的博客 465

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【前端开发】JS同步与异步调用,Vue2基础知识

一、JS同步与异步调用 1、异步调用函数:使用回调函数实现异步调用 2、使用 Promise 实现异步调用: 3、使用 async/await 实现异步调用: 二、Vue2基础知识 1、基本概念 & dom中常用的v指令 2、vue2的实例 & 数据绑定(先#el,再v-bind) 3、Vue2的组件 & 模板 (template, script, export default) 3、生命周期钩子 4、Vue2父子组件传值(Props,$emit) 5、Vue2组件引用(ref, $, this等符号)

小哈里的博客 3031

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaScript 基础知识复习2

小括号内的条件结果是布尔值,为 true 时,进入大括号里执行代码;数字是用来计算的,比如:乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。: 一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分支 更简单。使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同。中止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)如果大括号只有一个语句,大括号可以省略,但是,不提倡这么做~

2401_85837579的博客 891

JavaScript基础知识2

1. 运算符集合 赋值运算符 = 将’='右侧的结果赋值给左侧的变量 a += b; 等价于 a = a + b; a -= b; 等价于 a = a - b; a *= b; 等价于 a = a * b; 一元运算(在循环语句中会大量使用) ++ – 总结: 1. 不管是 ++ 或者是 – 都是在原来变量值的基础上 加1 或者 减1 2. 假如...

weixin_45176415的博客 642

Day 2:基础知识巩固(HTML、CSS、JavaScript)

总结:第一天重点是夯实基础知识,尤其是 作用域、闭包、事件循环、Promise、CSS 性能优化 等,确保不会被低级问题绊倒。HTML5 新特性(canvas、video、audio、localStorage、sessionStorage)重绘(Repaint):不影响布局(color、background、visibility)回流(Reflow):影响布局(width、height、position)meta 标签的作用(viewport、charset、SEO 相关)

weixin_45825917的博客 726

JavaScript入门——基础知识(2)

JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。注意:HTML和CSS是标记语言。未定义是比较特殊的类型,只有一个值undefined。什么情况出现未定义类型?只声明变量,不赋值的情况下,变量的默认值为undefined,一般很少【直接】为某个变量赋值为undefined。工作中的使用场景:在开发中经常声明一个变量,等待传送过来的数据。如果不知道这个数据是否传递过来,此时可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。

weixin_48719464的博客 438

JavaScript基础知识整理2

定义函数 在JavaScript中,定义函数的方式如下: function abs(x) { if (x &gt;= 0) { return x; } else { return -x; } } 由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量。 因此,...

weixin_37328901的博客 250

JavaScript基础知识总结(2)

这篇是关于原型、闭包、作用域的总结,如有不好希望大家指正

X200104的博客 1019

js2-基础知识2

js基础知识笔记2

Z417031的博客 271
上一篇: JS基础知识1
下一篇: BootStrap基础知识
Tket
博客等级 码龄9年 21粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值