介绍:
脚本语言
松散
对于开发者的要求很低
如 定义变量
严谨语言
int a = 30;
松散的言语
var a = 30;
永远不会认为开发者 写代码问题
定义的是数字
用的是字符串
1.把数字 转成成字符串
2.再去执行 开发者写的程序
语法
正常 一条语句结束会使用分号
var a = 30;
var a = 30
ECMAScript
计算机协会统一的标准
只包含了基础语法部分
版本区别
ECMAScript5(包含5)之前
ECMAScript6(ECMAScript2015、ES6)
包含了 所有语言 基本囊括的技能
相对完整的语言
TypeScript(TS)
微软出的JS语言>JS的超集
需要学习的模块
ECMAScript
语言基础
DOM、BOM操作
DOM
操作页面中的元素对象(标签)
批量创建
逻辑
交互
BOM
浏览器的操作
上一页 下一页
历史记录
刷新
webAPI
webSocket(即时通讯)
音视频播放器
游戏
canvas
webVR
数据持久化
IndexedDB
webSQL
localstorage
WEBAPI
基础语法:
预备知识:
1.语句:通常一行代码 如果添加了分号->一条语句 使用;分隔
2.变量:目的 通过一个名字表示一个可以改变的值
定义方式:var 变量名=值; var关键字
不赋值 var变量名
关键字:var
什么是关键字?
语言本身提供的名字 ,有固定意义 var 如var 就是定义变量的意思
语言本身 提供了很多关键字: var for while if startic let this等
变量名:开发者起的一个名字
注意:1.变量名不能用关键字定义
2.不能以数字开头
3.不能以特殊符号开头
4.定义变量名要有意义:驼峰命名法(第一个单词首字母小写,其他字母大写) 下划线命名法
意义:变量名 开发则七点一个名字
外号
标记
值 具体内容: 数字 文字(字符串) 数组 对象
由名字表示了 后面的值把右侧的值 赋值(=)
3.注释 单行注释 CTRL+/ 多行注释 CTRL+shift+/
4.调试 按F12(右键检查元素)->console
运算符:
算数运算符:+ - * / % 必须数字与数字之间运算
复合运算符:+= var a=10 var b=20 a=a+b a+=b
-= var a=10 var b=20 a=a-b a-=b
*= /=
++ 自己给自己增加一个1
-- 自己给自己减少一个1
比较运算符 结果 就是一个Boolean类型的值 true 对 false 错
>
<
>=
<=
==
===
!=
逻辑运算符 与&& 所有条件都必须满足 才算真的
或 || 只要有一个条件满足 就是真的
!非 颠倒黑白 对的就是错的 错的就是对的
三元运算(三目运算) 经常代替if else语句if (睡觉){做梦}else{掌握三元运算}
睡觉?做梦:掌握三元运算
条件? 满足执行:不满足执行
分支结构:if语句
swich
swich(变量){
case值1:break;
case值2:break;
default:
}
break 不是强制添加
但是需要注意 如果不添加break程序会继续走下面的条件
循环结构:
知道循环次数 用 for
不知道循环次数
用 while while(条件){循环体}
do while 不管条件 满不满足 先执行一次循环 这一次循环 计入到 总循环的次数中
for(var i=0;i<5;i++){}
for()中的各个语句的含义 var i=0;初始化 变量
i<5;循环的条件
i++; 更改变量的值
四种类型:
无返回值:
带参数
不带参数 var 函数名=function(){} function 函数名(){}() 整体
有返回值:
带参数
不带参数
组成:声明函数 function 函数名(){}
调用函数 函数名()
内置函数?
1.console.log();
2.alert();
3.Math.random();
4.prompt();
封装:编程思想
参数 :
形式参数 形参 没有实际意义 代表着 即将传进来的实参
实际参数 实参 是实实在在的一个值
a
返回值: 带返回值的函数是什么?
返回值是什么 函数就是什么
1 function x(){return}
return值;
return 放到函数中 return值 有返回值的函数
return; 跳出函数
作用域:
作用域的概念:变量起作用范围
局部变量
全局变量
自执行函数
c.逻辑运算符
逻辑 与&&
两边条件都满足 -> true
只要有一个条件不满足 就不成立 -> false
逻辑 或||
两边条件 只要有一个满足 -> true
两边条件 都不满足 -> false
逻辑 非!
对的加上感叹号 -> false
错的加上感叹号 -> true
DOM元素
查询dom元素的方法
1.查询DOM元素{
1.document.querySelector("选择器的名字") 查找到的永远是第一个元素
2.document.querySelectorAll("选择器的名字")
3.id选择器document.getElemetByld("不需要加#");
4.通过类选择器查document.getElementByClassName("item");//类选择器->伪数组
5.通过元素选择器查找document.getElementsByTagName("div");
伪数组
}*/
2.创建DOM元素:
doment.createElement.createElement("标签的名字")
3.DOM元素的操作:
1.把DOM元素放到父元素里面 父元素.appendChild(子元素)
2.删除元素
3.替换元素
4.设置元素的样式:
dom元素.style
5.设置元素的属性
a.dom元素.属性名=属性值 查询dom元素.属性名
dom元素.setAttribute(属性名,属性值) 查询dom元素.getAttribute("属性名")
6.事件:
1.鼠标事件:
鼠标移入事件:
onmouseover 先调用
onmouseenter 后调用
鼠标移出事件:
onmouseleave 先调用
onmouseout 后调用
1.点击事件 onClick dom.onClick=function(事件对象){}
2.键盘事件
3.状态事件
4.事件监听:
添加监听事件 dom.addEventListen("事件名",函数)
移除监听事件
事件里面的大技巧:
阻止元素的默认行为 event.preventDefault(); 如:去掉a标签刷新页面(跳转)功能 表单标签里面的<input type="submit"><input type="rest">
BOM
Browser Object Model:浏览器对象模型 里面的内容是所有关于浏览器的操作
1.窗口对象
window窗口包含的部分
浏览器可视的范围:
1.导航
2.历史记录
3.屏幕大小
4.位置
窗口对象 是Window的实例对象
注意:1.定义的全局变量 是定义到了window对象上面 可以通过window.xx访问
2.在最外面定义的函数 是定义到了window对象上面 可以通过window.xx访问
尺寸:
window.innerHeight-浏览器窗口的内部高度(包括滚动条)
innerWidth-浏览器窗口的内部宽度(包括滚动条)
如果要求使用IE6.7.8时 使用 document.body.clientHeight
document.body.clientWidth
动态获取窗口的宽高:
onresize=function{
console.log();
}
事件:
resize
2.Location 位置定位
location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443):
80(web页面的默认端口) ;443(https 加密的超文本传输协议端口)普通的HTTP是没加密的,不需要开启443;21(FTP文件传输协议端口);3306(mysql数据库默认端口);
location.protocol 返回所使用的 web 协议(http: 或 https:)
location.search返回搜索的结果(http GET方法的参数) 页面之间传参
location.href 本页的位置 指定页面要跳转的位置
3.History 历史记录
前提:必须有历史记录 才能使用这些函数
back 必须跳转了下一个页面 才有返回
forward 必须跳转过下一个页面(有返回过上一页)才能使用前进的功能
go 正数 往后跳 负数 返回 挑几级由里面数字决定
4.navigator 导航
1.geolocation 获取地理位置信息 经纬度
getCurrentPosition获取当前位置信息 参数 (成功时候调用的函数 失败时候调用的函数)
2.getUserWedia,mediaDevices 音频流 视频流的处理
5.定时事件 setInterval(function(){
定时器(每隔多久执行一次) }500);
setTimeout(function(){
延迟执行(只执行一次)},500)
6.数据持久化