JavaScript基础知识点


JavaScript可以改变HTML的内容,可以分为三个部分:ECMAScript、BOM和DOM,其中BOM包含DOM。

ECMAScript

ECMAScript为JavaScript的语法部分。

变量的定义

javascript中所有的变量都用var来定义,无论是整数、小数、字符串、数组、对象等统统可以使用var来定义;并且在javascript中双引号和单引号都是表示字符串的,没有区别。

			var a = 11;
			var b = 1.2;
			var c = 'zouzou';
			var d = {1,5,6,"asd",true};
			var e = new Date();
			var f = true;
			var a = "uuu";

运算符的使用

由于javascript可以用var定义所有类型的值,所以在运算时会有一些隐式的类型转换,如“+”,当两侧有字符串时,就会默认将另一侧转换为字符串类型。

			var a = 12;
			var b = 10;
			alert(a + b);// 22
			var c = "123";
			alert(a+b+c);// 22123
			alert(a+c+b);// 1212310

等值运算符:当两端类型不一致时,转化为number类型。
值得一提的是,当类型转换时,如果字符串中有字母等非数字字符,类型转化后为NAN,即为Not A Number。

			var s=1;		//1
			var s1="1";		//1
			var s2=true;	//1
			var s3="true";  //NAN
			// console.log(s==s1); //T
			// console.log(s==s2); //T
			// console.log(s==s3); //F
			// console.log(s1==s2);//T
			// console.log(s1==s3);//F
			// console.log(s2==s3);//F

等同符:两侧类型相同值为true,不同值为false。

			console.log(s===s1); //F
			console.log(s===s2); //F
			console.log(s===s3); //F
			console.log(s1===s2);//F
			console.log(s1===s3);//F
			console.log(s2===s3);//F

数组

在javascript中,数组可以存放任意类型的值,犹如java中的集合一般。

数组的定义:

				var arr1 = new Array();
				
				var arr2 = new Array(5);
				//定义数组中的内容
				var arr3 = new Array(1,1.2,true,'zou',new Date());
				
				console.log(arr3);
				
				var arr4 = [1,1.2,false,'zouzou'];

js中数组下标可以是不连续的,中间没有值的可以补充empty。

				var arr = [];
				arr[0] = 1;
				arr[1] = 'zou';
				arr[2] = true;
				arr[6] = new Date();

js数组空间的扩张和收缩。

				var arr = [1,1.2,'xsa'];
				console.log("前:" + arr);
				//后面下标内容补充空字符串
				arr.length = 8;
				//多余的内容会省去
				arr.length = 1;
				console.log("后:" + arr);

JS常用对象

Date日期对象:

				var date = new Date();
				//从1900年到2021年的时间
				console.log(date.getYear());
				console.log(date.getFullYear());
				console.log(date.getMonth());
				//星期
				console.log(date.getDay());
				console.log(date.getDate());
				console.log(date.getHours());
				//返回的是本地的时间
				console.log(date.toLocaleString());

Math对象:

				//获得随机数 0-1
				console.log(Math.random());
				//向上取整
				console.log(Math.ceil(1.2));
				//向下取整
				console.log(Math.floor(1.9));
				//四舍五入
				console.log(Math.round(7.6));
				
				//如何获得四位随机整数?
				console.log(Math.floor(Math.random()*9000+1000));

String对象:

				var str = "qin-gqingde-wozoul";
				//从下标为3截取到末尾作为字符串
				console.log(str.substr(3));
				
				console.log(str.substr(2,5));
				
				console.log(str.substring(2));
				
				console.log(str.substring(2,3));
				//字符串分割   返回的是一个数组
				console.log(str.split("-"));

Global对象:

				var a = "var yy = 'zouzou'";
				//把长得像js字符串转成可以执行的js代码
				eval(a);
				var b = '123';
				//判断是否为数字,是为false
				alert(isNaN(b));

javascript常用事件

		<!-- onclick 单击事件 -->
		<button type="button" onclick="demo1()">单击事件</button>
		<!-- ondblclick 双击事件 -->
		<button type="button" ondblclick="demo1()">双击事件</button>
		<!-- onkeydown: 键盘按下事件  onkeyup: 键盘弹起事件 -->
		<input type="text" onkeydown="demo1()" onkeyup="demo2()" />
		<!-- onmouseover:鼠标移上事件  onmouseout:鼠标移走事件 onmousemove:鼠标移动事件  -->
		<div style="width: 200px; height: 200px; background-color: aqua;"
		 onmouseover="demo2()" onmouseout="demo1()" onmousemove="demo3()"></div>
		 <!-- 文本事件 onblur:失去焦点 onfocus:获得焦点 -->
		 <input type="text" onblur="demo1()" onfocus="demo2()"/>
		 <!-- onchange:内容值改变事件 -->
		 <select onchange="demo1()">
		 	<option>--请选择--</option>
			<option>河北</option>
			<option>河南</option>
		 </select>

BOM

BOM是操作浏览器属性的方法。

BOM常用对象

Localtion对象:

				//返回主机名和当前 URL 的端口号
				console.log(window.location.host);
				//ip地址
				console.log(window.location.hostname);
				//端口号
				console.log(window.location.port);
				//协议
				console.log(window.location.protocol);
				//地址
				console.log(window.location.href);
				
				//替换当前的url地址 --> 当前的页面 即跳转目标界面
				window.location.href = "https://www.baidu.com";
				
				//重新加载页面
				window.location.reload();

history对象:

//url地址中历史记录前一个
				window.history.back();
				//url地址中历史记录后一个
				window.history.forward();
				//go函数可以写任意整数,正数为向历史记录的后面跳转两个页面
				window.history.go(2);

Screen对象:操作屏幕属性

				//得到显示器大小
				var w = window.screen.width;
				var h = window.screen.height;
				
				console.log(w);
				console.log(h);	

Navigator对象:

//显示浏览器信息
console.log(window.navigator.userAgent);

BOM常用方法

window对象几种常用的弹窗方式:

				//方式一:只含有确定按钮的弹框
				alert("你好");
				//方式二:含有取消按钮的弹框 
				var flag = window.confirm("确定选择吗?");
				alert(flag);
				//方式三:含有输入框的弹框
				window.prompt("请输入昵称:","例如:李白");

setInterval方法和setTimeout方法的区别:一个是多次调用,一个是只调用一次。

			//每间隔一秒就调用一次函数 --> 调用多次函数
			var t = window.setInterval("demo2()",1000);
			//一秒后调用函数 --> 只调用一次
			window.setTimeout("demo2()",1000);

DOM:对HTML节点进行操作

DOM可以操作HTML节点对象,还可以操作它们的属性、文本值等等。

DOM获取元素对象的方式:

1.通过id获取元素对象

				//通过id获得元素对象
				var sp = document.getElementById("sp1");
				console.log(sp);

2.通过标签名称获得元素对象

				var sps = document.getElementsByTagName("span");
				console.log(sps[3]);

3.通过class获得元素对象

				var sps = document.getElementsByClassName("sp");
				console.log(sps[0]);

4.通过标签的name属性获得对应元素,但是应该注意的是不是所有标签都有name属性。

				var sps = document.getElementsByName("n");
				console.log(sps[0]);

DOM获得节点的附近节点

值得注意的是,javascript中,文本也算节点,所以如果有换行的话得到的下一个节点会是文本节点。

				//获得div元素对象
				var d1 = document.getElementById("d1");
				//获得d1下的所有子标签(空白文本也属于子节点)
				var chs = d1.childNodes;
				
				//获得span标签对象
				var sp = document.getElementById("sp1");
				//获得父节点
				var p = sp.parentNode;
				
				var sp = document.getElementById("sp1");
				//获得当前标签的下一个标签 由于文本也算节点,所以直接使用nextSibling获取到的是空格文本。
				var n1 = sp.nextSibling.nextSibling;
				var n2 = sp.nextElementSibling;
				
				//获得当前标签的上一个标签
				var p1 = sp.previousSibling;
				var p2 = sp.previousElementSibling;

DOM创建节点和删除节点

例子:

				//创建一个p标签节点对象
				var p = document.createElement("p");
				p.innerText = "照片:";
				//创建一个input标签
				var inp = document.createElement("input");
				inp.type = "file";
				//创建一个button标签
				var but = document.createElement("button");
				but.innerText = "删除";
				but.onclick = function() {
					var flag = window.confirm("是否删除该节点?");
					if(flag){
						p.remove();	
					}
				}
				
				//指定标签之间的关系
				p.appendChild(inp);
				p.appendChild(but);
				
				//最后把p标签追加到现有元素之后
				// document.body.appendChild(p);
				
				var p1 = document.getElementById("p_1");
				//在指定元素之前追加元素
				document.body.insertBefore(p,p1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值