JavaScript笔记--04

版权声明:这是博主的原创文章,喜欢请支持一下。 https://blog.csdn.net/qq_39925376/article/details/88616819

JavaScript 中 this不是固定不变的,它会随着执行环境的改变而改变:
在方法中,this 表示该方法所属的对象。
如果单独使用,this 表示全局对象。
在函数中,this 表示全局对象。
在函数中,在严格模式下,this 是未定义的(undefined)。
在事件中,this 表示接收事件的元素。
类似 call() 和 apply() 方法可以将 this 引用到任何对象。

ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const
let 声明的变量只在 let 命令所在的代码块内有效。
const ----声明一个只读的常量,一旦声明,常量的值就不能改变。
ES6之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。
使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。

全局作用域是针对js 环境,在 HTML 中, 全局作用域是针对 window 对象。
使用 var声明的全局作用域变量属于 window 对象,使用 let 声明的全局作用域变量不属于 window 对象。
在相同的作用域或块级作用域中,不能使用 let 来重置 var 或let 关键字声明的变量,也不能使用 var来重置 let 声明的变量。let 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的:

var定义的变量可以在使用后声明,let 关键字定义的变量则不可以在使用后声明。
const定义常量与使用let 定义的变量相似:
二者都是块级作用域,都不能和它所在作用域内的其他变量或函数拥有相同的名称
两者区别:
const声明的常量必须初始化,而let声明的变量不用const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。

JSON 是用于存储和传输数据的格式,通常用于服务端向网页传递数据 。它是一种轻量级的数据交换格式,是独立的语言,JSON 使用 js语法,但 JSON 格式仅仅是一个文本。
JSON 语法规则:
数据为键值对。数据由逗号分隔。大括号保存对象,方括号保存数组
JSON.parse() ----将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify() ----将 JavaScript 值转换为 JSON 字符串。

ES6 新增了箭头函数,箭头函数中 this 的值和外层的 this 是一样的。

	// ES5
	var x = function(x, y) {
	     return x * y;
	} 
	// ES6
	const x = (x, y) => x * y;

箭头函数是不能提升的,所以需要在使用之前定义。
使用 const 比使用 var 更安全,因为函数表达式始终是一个常量。如果函数部分只是一个语句,则可以省略 return 关键字和大括号 {}。
JavaScript 函数有个内置的对象 arguments 对象,包含了函数调用的参数数组。

JavaScript 变量可以是局部变量或全局变量,私有变量可以用到闭包。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。
闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。可以通过 id 、标签名、类名找到 HTML 元素。

	var x=document.getElementById("intro");
	var y=x.getElementsByTagName("p");
	var x=document.getElementsByClassName("intro");
	<script>
	//改变 HTML 内容
	document.getElementById("p1").innerHTML="新文本!";
	//改变 HTML 属性
	document.getElementById("image").src="landscape.jpg";
	//改变 HTML 样式
	document.getElementById("p2").style.color="blue";
	</script>

onload 和 onunload ----在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。都可以用于处理 cookie。
onchange ----常结合对输入字段的验证来使用。
onmouseover 和 onmouseout ----在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

addEventListener() 方法用于向指定元素添加事件句柄,添加的事件句柄不会覆盖已存在的事件句柄,可以更简单的控制事件(冒泡与捕获)。

	element.addEventListener(event, function, useCapture);
	//第一个参数是事件的类型 (如 "click" 或 "mousedown").
	//第二个参数是事件触发后调用的函数。
	//第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。

事件传递有两种方式:冒泡与捕获。在冒泡中,内部元素的事件会先被触发,然后再触发外部元素,捕获则相反。
removeEventListener() ----移除由 addEventListener() 方法添加的事件句柄
appendChild() ----创建新的 HTML 元素 (节点),用于添加新元素到尾部。
insertBefore() ----将新元素添加到开始位置
DOM 需要清楚您需要删除的元素,以及它的父元素。
replaceChild() ----替换 HTML DOM 中的元素。

getElementsByTagName() ----返回 HTMLCollection 对象(类似包含 HTML 元素的一个数组)
NodeList 对象是一个从文档中获取的节点列表 (集合) 。NodeList 对象类似 HTMLCollection 对象。所有浏览器的 childNodes 属性返回的是 NodeList 对象。大部分浏览器的 querySelectorAll() 返回 NodeList 对象。

HTMLCollection 与 NodeList :
HTMLCollection 是 HTML 元素的集合,都与数组对象有点类似,
NodeList 与 HTMLCollection 都有 length 属性。
HTMLCollection 可以通过 name,id 或索引来获取,NodeList 只能通过索引来获取。
只有 NodeList 对象有包含属性节点和文本节点。
节点列表不是一个数组,无法使用数组的方法: valueOf(), pop(), push(), 或 join() 。

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…还允许自定义对象。
JavaScript 是面向对象的语言,但它不使用类。在 JavaScript 中,不会创建类,也不会通过类来创建对象,JavaScript 基于 prototype,而不是基于类的。

所有 JavaScript 数字均为 64 位,可以使用 toString() 方法 输出16进制、8进制、2进制。无穷大用以Infinity表示。
NaN 是代表非数字值的特殊值,用于指示某个值不是数字,可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。

\’ ----单引号      \" ----双引号
\\ ----斜杆      \n ----换行
\r ----回车      \t ----tab
\b ----空格      \f ----换页

JavaScript Window是浏览器对象模型,浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。 window 对象表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
全局变量是 window 对象的属性,全局函数是 window 对象的方法,甚至 HTML DOM 的 document 也是 window 对象的属性之一。

确定浏览器窗口的尺寸:

	var w=window.innerWidth
	document.documentElement.clientWidth
	document.body.clientWidth;
	
	var h=window.innerHeight
	document.documentElement.clientHeight
	document.body.clientHeight;

window.open() ----打开新窗口
window.close() ----关闭当前窗口
window.moveTo() ----移动当前窗口
window.resizeTo() ----调整当前窗口的尺寸
window.screen 对象包含有关用户屏幕的信息(可以不加前缀)
返回屏幕的可用宽度:

	<script>
	document.write("可用宽度: " + screen.availWidth);
	</script>

window.location ----获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
location.hostname ----返回 web 主机的域名
location.pathname ----返回当前页面的路径和文件名
location.port ----返回 web 主机的端口 (80 或 443)
location.protocol ----返回所使用的 web 协议(http:// 或 https://)

location.href ----返回当前页面的 URL。
location.pathname ----返回 URL 的路径名。
location.assign() ----加载新的文档。

window.history 对象包含浏览器的历史(可以不加前缀)
history.back() ----与在浏览器点击后退按钮相同
history.forward() ----与在浏览器中点击向前按钮相同

window.navigator 对象包含有关访问者浏览器的信息(可以不加前缀)
在 JavaScript 中创建三种消息框:警告框、确认框、提示框。
弹窗使用反斜杠 + “n”(\n) 来设置换行。

JavaScript 一个设定的时间间隔之后来执行代码称为计时事件。
setInterval() ----间隔指定的毫秒数不停地执行指定的代码。setInterval() 第一个参数是函数(function),第二个参数间隔的毫秒数。
setTimeout() ----在指定的毫秒数后执行指定代码。
clearInterval() ----停止 setInterval() 方法执行的函数代码。

猜你喜欢

转载自blog.csdn.net/qq_39925376/article/details/88616819