一、认识JavaScript
1.JavaScript是由Netscape公司 (网景
)的Livescript发展而来,js是一种基于对象(object)和事件驱动的安全性脚本语言 利用js可以完成:
-
响应事件:页面加载完成或者点击某天元素时,调用指定的js程序
-
读写HTML元素:JS可以读取及改变当前页面内的某个元素的内容
-
验证用户输入的数据
-
检测访问者的浏览器:根据所检测到的浏览器,为这个浏览器载入相应的页面
-
创建cookies:存储和取回位于访问者的计算机中的信息
-
JS的作用是给浏览器指令(命令),负责和浏览器进行沟通的
-
计算机语言的发展史:
-
阶段一 : 计算机语言 0101
-
阶段二 : 汇编语言 ,用符合来来代替0101(mov/add)
-
阶段三:高级语言 ,接近自然语言 c 、c++、 c# 、 java、 OC 、python、 go\ swift、 Dart、 JS 、TypeScript
二、 JavaScript的历史
-
诞生背景:1995网景公司 EIC和,Scheme发明了JavaScript
-
微软: Jsscript
-
1996年网景公司向ECMA(欧洲计算机制造商协会)提交了提案 ,ECMA指定这门语言为标准
-
1997年ECMA指定标准 ECMAScript
-
JavaScript 只是ECMA一种实现
-
JavaScript:Javascript + DOM + Bom
三、 JavaScript的特点
-
解释性语言
- 读取一行 解释一行 ,执行一行
-
动态类型语言
- 在运行阶段可以动态修改变量类型的类型
-
js是一种脚本编写语言,采用小程序段的方式实现,开发过程简单
-
js是一种基于对象的语言,能运用已经创建的对象
-
js是一种基于Java基本语句的控制流之上的简单而紧凑的设计语言
-
js是动态的,可以直接对用户的输入作出响应,无需经过web服务程序
-
js是安全性语言
-
js具有跨平台性
四、JavaScript编写位置
-
内联 行内 HTML元素中
-
script 标签里
-
外部引用 js
五、JavaScript注释使用
- 单行 多行 文档注释
/*
*/
/*
*/带解释的注释
六、 和浏览器交互
-
alert
-
Console.log
-
Document.write()
-
prompt
七 、如何定义变量
- 常量变量
-
常量 :不可改变
-
变量:由字母、数字、下划线组成,以字母开头,除此之外不能有空格和其他符号 ,不能使用关键字
-
变量的使用
<pre mdtype="fences" cid="n304" lang="html" spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;"><!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>
</head>
<body><script>
// (1)交换方式一 使用临时变量
// var a = 1;
// var b = 2;
// var temp = 0;// temp = a;
// a = b;
// b = temp;
// console.log(a,b,temp)// (2)交换方式2 只针对数字
var a = 1;
var b = 2;// a = 3
a = a + b;
// b = 3-2 = 1
b = a - b;
// a = a - b = 3 - 1 = 2
a = a - b;
console.log("a="+a,"b="+b)
</script>
</body>
</html></pre>
-
循环
-
for
-
Switch
-
while
Break 终止包含for、Switch、while,当遇到break语句的时候,会退出循环并执行下一条语句
continue :在循环体结构中 提前结束本次循环周期并开始下一个循环周期,停止当前循环的迭代,从循环的开始处继续程序流程
-
-
JS中的事件
-
onClick 点击事件
-
onChange 表单相关 利用 text 或者textarea输入的字符值改变发生的事件
-
onSelect事件: 当文本框内容被选中时发生的事件
-
onFocus事件 :当单击表单对象时
-
onLoad事件:当加载网页文档时,会产生该事件。onLoad 事件的作用是在首次载入一个页面文件时检测cookie,并用一个变量为其赋值,使其可以被源代码使用
-
onUnload 事件:退出网页
-
onBlur事件:失去焦点正好和获取焦点对立,当text,textarea或者select对象不再拥有焦点而退到后台时;
-
onMouseOver事件 鼠标指针移动到某对象范围的上方时触发的事件
-
onMouseOut 鼠标指针离开某对象范围时
-
onDblClick 鼠标双击
-
onmousedown 鼠标按下
-
onmouseup 鼠标按下后松开
-
Onmousemove 鼠标移动
-
onKeypress 当键盘上某个键被按下并且释放时触发
-
Onkeydown 键盘上某个按键 按下
-
Onkeyup 键盘某个按键被松开
-
Onabort 图片在下载时被用户中断
-
onmove 浏览器的窗口被移动时触发
-
Onscroll 浏览器的滚动条位置发生变化
-
Onstop 浏览器的停止按钮按下或者正在下载的文件被中断
-
Onreset 当表单中的reset属性被激发
-
Onsubmit 表单提交信息时
-
-
内部对象
浏览器内部对象,可以实现与HTML文档进行交互,主要包括:
-
浏览器对象 (navigator) :浏览信息
-
文档对象(document):document对象包含了与文档元素一起工作的对象
-
anchorm锚对象:指 a标签中存在时产生的对象,办好文档中所有的anchor 信息
-
link链接对象:使用 a标签标记超链接一个超文本或者超媒体的元素作为一个特定的URL
-
form窗体对象:包含多种格式的对象存储信息,可以在js脚本中编写程序,并可以用来动态改变文档的行为
-
-
窗口对象(windows):提供处理浏览器窗口的方法和属性
-
位置对象(location):提供了当前打开的URL一起工作的方法和属性,是一个静态对象
-
历史对象(history)历史清单有关
-
八、基础数据类型
JS中常见的基本数据类型
-
数值型(Number):
- NaN 不是数字类型
-
字符串型(String)
-
布尔型(Boolean)
-
空类型(Null) : null 通常当一个对象(object类型)不再使用的时候 ,可以赋值为null
<pre mdtype="fences" cid="n333" lang="htm" spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;">var info = {"name"="aaa","age" = 18}
info = null </pre> -
未定义类型(Undefined) : 未定义当一个变量进行了声明,但是没有赋值,这个时候她的值就是undefined
我们编写的代码在硬盘,打开代码后 ,加载到浏览器 , 放在内存中 ,如果是基本数据类型 就是在栈空间申请空间 ,指针指向这段 ,如果是对象类型 ,则是在堆空间申请一块空间
num++ :先使用 后自增+1
++num: 先自增+1,后使用
九、数据类型的转换
其他类型转换成数字类型
9.1 转成数字类型
-
Number(其他类型) 把其他类型转为数字类型
-
parseInt(string,radix) 字符串转化为 Number类型 找到一个数字就解析一个数字 并返回; radix 基数 进制
-
parseFloat(string) 字符串转为 Number类型
JS数字类型:Number类型
9.2 转成字符串
-
toString() num 和bool类型可以 . Unll 和undefined不可以
-
Sting() 所有类型
-
字符串拼接
9.3 转成布尔类型
-
使用Boolean()函数把其他类型转成布尔类型
-
转换成false 的5种 特殊值: “” 空字符串、 0(包括0、-0) 、 undefined 、 unll 、 NaN;
-
除啦上五种 ,其他为true
-
十 、JavaScript操作符
-
算数运算符:
-
/
-
%
-
++
- 前置和后置 ++a 先自增+1 后使用 , a++ 先使用后自增+1
-
--
- 前置和后置
-
赋值运算符 :
-
=
-
+=
-
-=
-
*=
-
/=
-
%=
-
-
比较运算符:
-
<
-
=
-
<=
-
== 会隐式转换
-
!=
-
=== 全等 不会隐式转换
-
!== 全不等
== != 判断会有隐式转换
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n559" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;"> var a = true;
var b = "true";
// 隐式转换: 都转换成number再比较
// a -> 1
// b -> NaN
console.log(a == b); //false</pre>=== 全等 类型 相等 ,数据相等 !==不会进行隐式转换
-
逻辑运算符
-
&& 逻辑与
-
|| 逻辑或
-
!非运算(取反)
-
-
运算符的优先级
十一、 分支语句
-
if
-
if else
-
If else if else
-
switch case break (穿透)
十二、 循环
-
while
-
do while
-
for
十三、 DOM 节点
D(document 文档) O(obgect 对象) M(Model 模型)
常用的DOM方法:
-
getElementById
-
getElementByTagName
-
getElementsByClassName
-
Get-Attribute 和setAttribute
网友评论