JavaScript

JavaScript是一种轻量级的脚本语言,主要用于Web页面交互,但也可用于非浏览器环境。它包括ECMAScript语法、DOM和BOM三个部分。ECMAScript定义了语言基础,DOM用于操作页面内容,BOM处理浏览器对象。JavaScript可进行事件处理、数据验证、动态效果等。引入方式有行间、内部和外部。变量声明使用var,数据类型包括基本类型和引用类型。JavaScript支持赋值、算术、关系、逻辑和三元运算。数组、循环、函数和事件处理是其重要概念,DOM操作涉及元素增删改查。BOM中的window对象提供了定时器、弹出框和页面跳转等功能。

JavaScript

JavaScript是什么

跟java一毛钱关系都没有!!!

JavaScript(简称“JS”) 是一种具有函数优先的轻量级(相对比较简单),解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言(代码写好之后,不需要编译, 可以直接在解释器上进行)而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格
JavaScript就是一种轻量级的脚本语言!

总结 :
JS具有一定写作语法结构(与java基本语法很相似,比java结构要简单);
JS是一门脚本语言, 就是代码不需要编译, 可以直接在解释器上运行(JS代码可以直接在浏览器中运行)

JavaScript作用

可以进行事件处理、读写元素内容、改变元素样式、设置动态、动画效果、表单数据校验、校验浏览器的信息等。。。

JavaScript的组成部分

ECMAScriptjs的基础语法,包含了,基本的语句结构、变量、运算符、数组、事件、对象等
才能知道js代码如何书写!
DOM(document object model)文档对象模型,它的存在,让我们可以灵活的操作页面中的内容!操作文档中的标签及内容,就是所谓的增删改查!
BOM(browser object model)浏览器对象模型,操作浏览器对象!

如何引入js

(1)、行间引入
弊端:js代码的复用性比较差!

<input type="button" value="点我,点我" onclick="alert('我被点击了')" >

(2)、内部引入

<script type="text/javascript">
	//js代码
	alert( "我在head头中的js代码");
</script>

(3)、外部引入
不要在引入外界js文件的script标签内部再书写任何的js代码了!因为不会生效!

<script type="text/javascript" src="js/myJs.js">
//请一定注意:引入外部js文件的- -对script标签中, 不能再写其他js代
//因为此中的js代码不生效
</script>

ECMAScript

浏览器页面 F12, 找到console窗口, 查看js中输出打印的内容

  1. 变量的声明
    js是弱类型语言
    所有变量的声明都使用var关键字!
    语法格式:var 变量名 = 初值; var 变量名;
  2. js的数据类型
    基本数据类型(5种)
    number 数值类型 : 整数, 浮点类型
    string 字符串类型 : 可以使用’’ 或者 “”表示, 双引号中只能写单引号
    boolean 布尔类型,表示真假情况,取值为true和false
    undefined 未定义类型,一个变量没有给初值,那就是未定义类型
    null 空类型
    在js中undefined值实则就是从null演变过来的,所以undefined与null做判断时返回值为true
console.log(undefined==null);//true
console.log(undefined===null);//false

function 函数、方法类型
引用类型:object 对象类型
typeof(变量名) ——查看变量数据类型的函数

  1. js中的基本语法
    (1)、赋值、算数运算符 = + - * / % ++ - -
    注意 : 在js中除法运算的结果该是多少就是多少!
    (2)、关系运算符 > < >= <= == != === !==
    == 值比较,忽略类型!
    === 全等, 值、类型都要一致才为true

    (3)、逻辑运算符 && || ! 即:与或非
    (4)、三元运算符
    表达式1 ? 表达式2 : 表达式3;//同java中
    (5)、语句
    分支语句:if…else switch…case
    闰年判断的案例:可以被400整除; 或者能被4整除但是不能被100整除

  2. 数组 :
    (1) js中的数组, 可以当做集合进行使用, 长度可变, 数据类型没有限制
    (2) 数组有索引 : 0开始, length-1结束
    (3) 获取元素 : 数组名[索引]

  3. 循环:for while forin
    for while同java中
    forin:

for(var index in array){
	console.log(array[index]);
}
  1. 方法、函数
    function 方法名(参数列表) {
    方法体;
    return 语句;
    }
function method(a,b){
	return a+b;
}
var c = method(10,20);
console.log(c)

事件

  1. 事件表示js在网页中的行为,比如登录、注册按钮的点击、表单的提交、表单的校验等都需要用到事件!
  2. 事件的分类主要分为三大类:鼠标、键盘、表单事件
  3. 常见事件
    onblur 元素失去焦点
    onfocus 获得焦点
    onmouseover 鼠标覆盖
    onmouseout 鼠标移开
    onclick 鼠标点击
    onkeydown 键盘键按下
    onkeyup 键盘键松开
    onload 页面加载
    onchange 内容改变
  4. js中事件的绑定
    js对象.事件名 = function(){
    事件行为;
    }
/*
1)获取到页面上的div标签对象
2)例如:当触发点击事件时,修改div标签背景颜色为红色
*/
var div = document.getElementById("div1");
div.onclick = function(){
	div.style.backgroundColor="red";
}

DOM

涉及到页面内标签的操作,势必需要用到dom.
document object model,当网页被浏览器加载时,浏览器会创建一个用来表示当前页面文档的对象,document!我们在js中,操作document对象,就相当于在操作整个html页面!

作用:操作页面内容,对标签、样式等进行增删改查。

获取元素:

  1. getElementById(“id名称”) : 通过id名称获取标签,返回值 一个标签
  2. getElementsByClassName(“类名”) : 通过类名获取标签,返回值 标签数组
  3. getElementsByTagName(“标签名”) :通过标签名获取标签, 返回值 标签数组
  4. getElementsByName(“表单元素name属性的值”) 获取表单元素, 只有表单元素才有name属性,返回值 标签数组
    使用:document.

修改元素:

  1. 改变标签文本内容,值
    innerHTML 可以解析HTML结构
    innerText 只能处理纯文本
  2. 改变标签行间属性
    标签对象.属性名 = “属性值”; // 修改标签行间属性值
    标签对象.setAttribute(“属性名”,”属性值”);
  3. 改变标签css样式
    标签对象.style.属性名 = “属性值”;
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>1</title>
	</head>
	<body>
		<div id="div1" style="background-color: yellow;">block1</div>
		<div id="div2" align="left" style="background-color: red;">block2</div>
		<div id="div3" style="background-color: blue;">block3</div>
	</body>
	<script type="text/javascript">
			var div1 = document.getElementById("div1")
			var div2 = document.getElementById("div2")
			var div3 = document.getElementById("div3")
			
			var i =0;
			div1.onclick = function(){
				var value = div1.innerHTML;
				console.log(value);
				div1.innerHTML='<div>内置div</div>';
			}
			div2.onclick = function(){
				i++;
				if(i%2){
					div2.setAttribute("align","right")
				}else{
					div2.setAttribute("align","left")
				}
			}
			div3.onclick = function(){
				div3.style.backgroundColor = "black"
			}
		</script>
</html>

二、BOM

browser object model,浏览器对象模型。浏览器页面被加载、初始化时,会在内存中创建一个全局的对象,来描述当前窗口的属性或者行为,这个对象称为浏览器对象模型!

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
全局变量是 window 对象的属性。
全局函数是 window 对象的方法。

BOM中有一个最核心的对象window,代表浏览器的窗口!而这个窗口分为了6大子模块:
document 文档对象
frames HTML页面的框架对象
screen 屏幕对象
history 浏览历史对象
location 窗口位置对象
navigator 导航对象,获取到浏览器的相关信息

所有的浏览器都支持window对象,而且我们在使用window的子模块时,可以省略window的书写!

document.getElementById() <==> window.document.getElementById()

定时器

window对象的定时器
js中的定时器分为了两大类:单次(超时)定时器、循环(周期)定时器

1.单次定时器: 可以实现方法的延迟执行,而且方法只执行一次

var timeid = setTimeout(function() {
    
}, 延迟时间毫秒)

参数解析:
参数1 : function,代表绑定执行的方法
参数2 : delay,代表延迟的时间,单位毫秒

清除单次定时器 : 清除定时器,可以阻止定时器的执行。

clearTimeout(timeid);

2.循环定时器 : 循环定时器的最大作用,可以让一个方法反复的执行!

var timeid = setInterval(function() {

}, 时间毫秒)

参数解析:
参数1 : function,代表绑定执行的方法
参数2 : delay,方法执行的间隔时间,单位毫秒!
返回值timeid为当前定时器对象
清除循环定时器 : 清除定时器使定时器停止执行

clearInterval(timeid);

window中的弹出框

window对象有三种类型的弹出框:警告框、确认框和提示框。

  1. 警告框:window.alert("sometext");
  2. 确认框:window.confirm("sometext");返回boolean类型结果, 选择确定返回true,点击取消返回false
  3. 提示框:window.prompt("请输入用户名","默认输入值");返回输入的内容
    通常在书写时可以省略前面的window前缀。

window.location

location对象表示窗口的位置 : 可用于获取当前页面的一些信息,也可以使用此对象,在js中实现路径的跳转!

  1. 获取当前页面信息
    location.protocol 返回web协议(HTTP,HTTPS)
    location.hostname 返回web主机的名称
    location.port 返回web主机的端口号
    location.pathname 当前页面的路径文件名 /test/1.html
    location.href 当前页面的url完整路径
    举例 : 完整的浏览器页面访问的url路径http://localhost:8020/test/1.html

  2. 实现js路径跳转
    window.location = “新路径”;

window.history

浏览器历史对象,可以实现页面的前进及回退!

  1. history.back() 等同于在浏览器中点击后退按钮
  2. history.forward() 等同于在浏览器中点击前进按钮

window.screen

screen.availWidth 可用的屏幕宽度
screen.availHeight 可用的屏幕高度

window.document

document 就是DOM中的document。
document.body.offsetWidth 网页可见区域的宽度
document.body.offsetHeight 网页可见区域的高度

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值