JavaScript简介
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编
程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。 [1]
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为 Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
总结:
- JavaScript前端人简称JS。是一门编程语言。
- JavaScript属于脚本语言。脚本语言特征:可以嵌套在网页中,给网页添加一些动态效果。
- JavaScript在1995年由Netscape公司的Brendan Eich。
JavaScript用途
概述:JavaScript是一门脚本语言。脚本语言的特征是:可以给网页添加一些动态效果
比如:node平台,开发服务器。利用的也是JS;React、Vue框架。他们底层也是通过JS实现的。
JavaScript组成
JavaScript由三部分组成:ECMAScript、DOM、BOM
是由欧洲计算机协会,大概每年六月中旬定制语法规范
即document object model,文档对象模型
即browser object model,浏览器对象模型
内置语法
内置函数:内置即浏览器自带的,函数即某个功能
alert 警告框
alert 即警告、警报的意思
概述:alert是JS当中内置函数,他的主要作用是,在浏览器的正上方弹出一个警示框
<script type="text/javascript">
//内置函数alert alert("这是一个警示框");
alert('这是另一个警示框');
</script>
JS单行注释:使用 //
prompt 提示框
prompt 即提示、提示符的意思
概述:prompt也是JS中的内置函数,主要作用是在浏览器的上方,弹出一个提示框
<script>
prompt("这是一个提示框"); prompt('这是另一个提示框');
</script>
变量
变量的基本使用
variable即变量、可变情况
变量可以理解为一个容器,容器中可以存放任意类型的字面量数值、或者装载数学计算完的结果可以通过访问变量名字、获取到变量存储的结果
变量在使用的时候分为三步:声明、赋值和使用
1、声明:我们在使用变量之前,要通过关键字var进行声明一次
2、赋值:可以将任意类型的字面量数值、数字计算完结果,赋值给变量
3、使用:通过访问变量名字,获取到变量存储结果
变量声明是必不可少的。
变量使用注意事项


数据类型的转换
数字转换为字符串
如果语句当中没有出现字符串,这个加号就是数学的加法,可以进行数学的加法运算如果语句中出现了字符串,这个加号就不是数学的加法了,是所谓的连字符,可以将数据从左到右变成字符串
字符串转换为数字

数学运算符

数学对象


比较运算符
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 相等 |
=== | 全等(值和数据类型都等) |
!= | 不等 |
!=== | 不全等 |
Number类型的数值参与

Number类型的特殊值参与
其他类型数据参与(不包含字符串类型)

字符串类型参与

DOM
DOM认知
节点树


DOM属性

<script>
//DOC常用属性
//documentElement:获取节点树html标签 console.log(document.documengtElement);
//head:获取节点树的head标签
console.log(document.head);
//title:获取节点数的title标签 console.log(document.title);
//body:获取节点树中的body标签 console.log(document.body);
</script>
DOM方法

操作节点的属性
<div id="box" class="cur">你好哇</div>
//其中id和class是属性,你好哇是文本
<script>
var div=document.getElementById("box");
//获取节点属性 console.log(div.id);
//获取class属性需要用className console.log(div.className);
//设置节点属性值
console.log(div.id="nn");
</script>
操作节点文本
概述:可以通过点语法操作节点的文本
注意:操作节点本文有两种情况
操作表单元素文本,需要通过value属性操作

<script>
//操作非表单元素
var p=document.getElementById("no1");
//获取文本 console.log(p.innerHTML);
//修改文本
p.innerHTML="芜湖";
//操作非表单元素
var input_dom=document.getElementById("no2");
//获取文本 console.log(input_dom.value);
//修改文本 input_dom.value="改一下";
console.log(input_dom.value);
</script>
操作节点样式
行内样式
<div
style=width:100px;height:100px;color:red;background-color:aquamarine>你好哇
</div>
内部样式
<style>
.container{
color: red; width: 200px; font-size: 30px;
}
</style>//写在head里面,title下面,可以使用标签筛选器,类筛选器等等,选择单个标签指定样
式
外链标签
//外链标签需要新建一个css文件,在文件中直接书写样式内容,通过link标签在需要使用的文件中引入css
文件样式
<link rel="stylesheet" href="css1.css">
操作节点样式:
<script>
var div = document.getElementById("no1");
//获取行内样式 console.log(div.style); console.log(div.style.color);
//设置行内样式
div.style.color="blue"; div.style.width="200px";
</script>
事件绑定
element.onxxxx=function(){
}
onxxxxx这些都是小写
右侧部分是一个函数(事件处理函数):当用户触发事件的时候才会执行一次
onclick和ondbclick
概述:我们可以使用onclick和ondbclick进行单击或双击事件
<script>
//给元素绑定单击(双击事件只要换onclick即可)事件 var div=document.getElementById("box"); div.onclick=function(){
//修改背景颜色 div.style.backgroundColor="red";
//修改文字大小 div.style.fontSize="40px";
}
</script>
onmouseenter和onmouseleave
鼠标进入:onmouseenter或onmouseover
鼠标移除:onmouseleave或onmouseout
<script>
//获取节点
var img=document.getElementById("box");
//绑定鼠标进入事件 img.onmouseenter=function(){
img.src="./1.jpeg";
}
//绑定鼠标移出事件 img.onmouseleave=function(){
img.src="./0.jpeg";
}
</script>
onfouse和onblur
<body>
<p>
请您输入您的手机号:<input type="text" id="cur">
<span id="phone"></span>
</p>
</body>
</html>
<script>
//获取节点
var input=document.getElementById("cur"); var span=document.getElementById("phone");
//绑定聚焦事件 input.onfocus=function(){
//文字颜色为绿色
input.style.color="green";
}
input.onblur=function(){
//获取文本框中的文本 var txt=input.value;
//正则表达:验证字符串是不是手机格式 if(/^1[3456789]\d{9}/.test(txt)){
span.innerHTML="是手机格式";
}else{
span.innerHTML="不是手机格式";
}
}
</script>
鼠标系列的事件
<script>
//鼠标按下 document.onmousedown=function(){ document.body.style.background="red";
}
//鼠标移动事件 document.onmousemove=function(){
var R=parseInt(Math.random()*255); var G=parseInt(Math.random()*255); var B=parseInt(Math.random()*255);
document.body.style.background="rgb("+R+","+G+","+B+")";
}
//鼠标抬起事件 document.onmouseup=function(){
document.body.style.background="white";
}
</script>
事件对象
事件对象
<script>
//获取节点
var div = document.querySelector("div"); div.onclick = function(event){
//对于高级浏览器:谷歌、IE8以上的浏览器 >event
//对于低级浏览器:IE8以下的,事件对象作为BOM对象属性 var e = event||window.event; console.log(e);
}
</script>
获取鼠标位置
screenX||screenY
pageX||pageY
clientX||clientY
offsetX||offsetY
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
body{
height: 10000px;
}
.outer{
position: fixed; width: 600px; height: 300px;
background: skyblue; left: 30%;
top: 30px;
}
.inner{
width: 300px; height: 150px; background: red; margin:20px auto;
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">
</div>
</div>
</body>
</html>
<script type="text/javascript">
//获取节点
var inn = document.querySelector('.inner');
//鼠标在整个网页当中移动 document.onmousemove = function(event){
//短路语法进行兼容
var e = event||window.event;
inn.innerHTML = "screenX:"+ e.screenX + "screenY"+e.screenY+"
<br/>";
inn.innerHTML += "pageX:"+e.pageX +"pageY:"+e.pageY+"<br/>"; inn.innerHTML +="clientX"+e.clientX +"clinetY"+e.clientY+"<br/ >"; inn.innerHTML +="offsetX"+e.offsetX +"offsetY"+e.offsetY;
}
</script>
原生JS实现拖拽效果
<script type="text/javascript">
//移除事情
var div = document.querySelector('.cur');
//鼠标按下
div.onmousedown = function(event){
//短路语法兼容事件对象
var e = event||window.event;
//获取鼠标距离元素左侧顶部数据 var startX = e.offsetX; var startY = e.offsetY;
//鼠标在整个网页中移动
document.onmousemove = function(event1){
//短路语法兼容事件对象
var e1 = event1||window.event;
//元素进行拖拽
div.style.left = e1.clientX - startX +"px"; div.style.top = e1.clientY - startY +"px";
}
}
//鼠标抬起事情 将鼠标移动事件移除
document.onmouseup =function(){ document.onmousemove = null;
}
</script>