JS
JavaScript前世今生
JavaScript是什么,能干什么?
一个网页由3部分构成
结构:HTML 页面由什么构成
手、胳臂、腿、脑子
样式:css 字体大小 背景颜色 页面布局
腿长不长、长得好不好看
行为:JavaScript 页面上的动态内容
溜达、跑步、干饭
JavaScript的使用
在前端开发中JavaScript不能单独运行(除非你单独安装JavaScript运行环境除外)
JavaScript的运行需要挂在HTML上
HTML时羊,JavaScript是羊毛,羊毛必须要长在羊的身上才行
HTML中引用JavaScript代码、有2种方式
方式一:内部引用
使用script标签将JavaScript代码全部包裹起来

方式二:外部引用
(1) 将JavaScript的代码单独放在JavaScript文件中
(2) 在HTML中引入JavaScript文件

注意:在企业开发中我们一般使用的时外部引用,HTML与JavaScript是分开的,有利于分工合作更方便后期的维护
程序设计的基础
数据类型与变量
计算机程序就是去处理现实生活中各种数据的

数据包含三个属性

名字:闪购价
值:36.80
类型:小数类型
为什么需要数据类型:
生活中存在不同的数据类型,计算机是为了帮助我们解决现实生活中的问题,那么程序和生活中数据产生映射,所以就有了数据类型
为什么需要变量:
因为生活中的一些数据并不是一成不变的,他的值会改变,所以JavaScript里面就有了变量和他对应
变量
Var variable是简写,声明一个变量
Var name;
Var price;
Var num;
变量的命名
规则:
(1) 一般情况下,变量是由大小写字母和数字组成,也可以使用$或者_等特殊字符
(2) 变量不能以数字开头
(3) 关键字不能用。关键字:这个名字已经被JavaScript内部使用了
规范:
(1) 见明思意,看到这个名字你就知道这个变量是干嘛的
(2) 使用英文单词,不要使用拼音,不要使用中文
(3) 小驼峰,首字母小写。如果多个单词,单词首字母大写

数据类型
变量的类型是由变量的值来决定的,不同的类型系统给分布的内存空间也是不一样的。

字符串string
字符串是以单引号或者双引号 括起来的任意文本

数字number
数字:整数和小数,在JavaScript中不分整数和小数,统一number
布尔类型 Boolean
Boolean里面的值只有两个:true/false表示真或假
未定义undefined
Js中变量的类型是根据值来决定的,如果变量没有给值的话,没有东西:未定义
判断类型typeof

对象类型
对象类型是一个复杂的类型
怎么去描述一个人,这个人有身高、体重、年龄,这时候要定义一个对象属性
一切皆对象,对象包含属性
人对象:身高、年龄、体重
猫对象:名字、颜色、年龄
学生对象:学号、成绩、班级
对象的定义:

对象的访问:
对象名称 . 属性名
语句与注释
语句
一行一行的代码称为语句,一个语句使用分号(;)作为结束符
虽然JavaScript不写分号没问题,但是你到了项目上线代码压缩的时候会出现问题,一定要写上分号。
注释
对代码的解释,为了让你和你的同事可以轻松的看你的代码
“注释不规范,同时两行泪”
注释写与不写都不会影响代码运行,注释和代码运行结构没有任何关系
方式一:单行注释
//单行注释
方式二:多行注释
/*
我是多行注释
注释
*/
运算符
算数运算符
+、-、*、/(有小数)、%

++(自增)- -(自减)
本身可以不存在,程序员为了偷懒,引发的简介写法,存在就是简洁
n++等价于n=n+1
++n
n--
--n
n++和++n的区别
++在前面,先加后用
++在后面,先用后加
不管++在前面还是在后面,自身的值,只要运行了就会增加

赋值运算符
赋值:=
将一个数赋值 给 前面的变量
复合赋值运算符:+= 、-= 、*= 、/= 、%=
也是我为了偷懒印出来的一种简写
n+=3 等价于 n=n+3
n*=3 等价于 n=n*3

关系运算符
常见的关系运算符:< 、> 、<= 、>= 、==(等于) 、!=(不等于)
判断两个数字是否相等,使用两个等于(==)号,一个等于号(=)是赋值
特殊
===:绝对相等,值和类型都一样,结果才对
!==:值和类型一个不等就不等
关系运算符之后结果是布尔类型

重点:==和===的区别
==比较的是值
===比较值和类型
逻辑运算符
比如说有一个考试,上午和下午,有两个成绩
(1) 上午和下午都通过才算通过 与 &&
(2) 只要有一个通过了就算通过 或 ||
与运算&&
并且,如果你有若干个条件、只有所有条件都成立,结果才成立
或运算||
或者,如果有若干条件、只要有一个表达式成立,结果就成立
非运算!
取反,真的变成假的,假的变成真的

三目运算符(三元运算符)
表达式?结果1:结果2
如果表达式为true,就运行结果1
如果表达式为false,就运行结果2

综合案例

程序的设计方法
程序设计方法的介绍
小时候,练习学习过程:描红-》临摹-》独立编写
写代码也是一样的,不要一上来就写,应该理解并熟悉业务,思路要清晰
程序设计3步走
(1) 形成解决问题的思路(很重要)
(2) 将我们解决问题的思路一步一步表达清楚(中文,图表)
(3) 将上面步骤一步一步翻译成计算机可以使用的语言(js php java)
案例:计算三位数个位数的和

案例:计算三角行面积
输入三角形三个边长,根据海伦公式计算三角行面积,海伦公式

Math.sqrt(25)=5;
错误与程序调试
程序的错误
错误:程序并没有像我们想想那样运行成功。程序中,错误可以分为两种
语法错误
编写的代码没有按照语言的要求去编写
alert()写成了alort
)
缺少分号
在一些高级开发的工具中:一旦发生了错误里面会给提示
如果代码中语法错误,后面不会继续运行
逻辑错误
代码可以正常运行,但是运行的结果和我们的期望的不一样
这种错误比较不好解决,使用单步调试(aebug调试)去解决
谷歌(chrome)浏览器去调试错误
语法错误
(1) 在浏览器中,鼠标点击右键-》检查-》console

(2) 错误查看
可以定位 那个 文件 哪一行报错

(3) 找到对应的文件,进行修改
改完一处之后,重新运行,如果有错误继续解决-》直到没有错误
逻辑错误
办法:单步调试,代码一行一行的去执行,去看每一行的执行结果和期望是否一样,从而确认哪一行有错误
(1)找到要调试的代码

(2)打断点,在行号的地方,点击一下,会出现一个箭头

(3)刷新浏览器

(4) 定位错误
每执行一行代码,看你的运行结果和期望的是否一致,如果不一致,说明该行代码有问题-》那行代码有问题就解决那行

(5) 修改代码,重新执行,如果还不对继续单步调试
选择结构
三大结构
程序中有三大结构:顺序、选择、循环
顺序结构:代码从上到下一行一行的执行
选择结构:代码有分支,有选择
循环结构:重复执行 一段 代码
为什么需要选择结构
比如三角形面积的案例,当你输入的三条边不能组成三角形的时候,不能使用公
式计算
在我们生活中也有很多选择
比如:马上放假了,你有女朋友,你可以带着女朋友出去浪,如果煤油,自己在家 带着
比如:口袋里面钱的多少,你有100元今晚喝酒。否则吃泡面
程序解决我们现实生活中的问题,生活中存在选择,所以程序必定存在选择
基本if语法
if:如果
else:否则
if(表达式A){、
表达式A成立运行这里的代码
}else{
表达式A不成立运行这里的代码
}
注意:
(1) 表达的是A的运行结果是一个boolean类型
(2) else后面的那一块并不是一定需要写的,你可以根据自己的业务来定
案例:绝对值案例
输入一个数,如果这个数是负数,转成正数,如果输入的是正数,直接输出

案例:计算三角形面积
当你输入三个边不能组成三角形直接输出文字“输入三边不能构成三角形”,能组成三角形直接输出面积

案例:判断一个数字是否为水仙花数
三位数,各个位数的立方和相加等于本身

If语句嵌套
if嵌套
基本语法:
if(表达式1){
if(表达式2){
}
}
案例:献血案例
根据性别和体重计算输血量,女生体重不超过50kg输血量为200ml,否则为250ml。男性体重不超过60kg输血量为250ml,否则为300ml

else if
语法:
If(表达式1){
表达式1成立运行这里
}else if(表达式2){
表达式2成立运行这里
} else if(表达式3){
表达式3成立运行这里
} else{
如果以上都不成立,运行这里的
}
案例:成绩评语
90-100:真厉害 666
80-90:还可以
70-80:还有很大的提升空间
60-70:小心了,要挂了
<60:多半是废了

switch
问题:当你if分支比较多的时候,需要从上往下一个一个的分支去执行,执行效率非常低。需要我们对选择结构进行改进。使用switch就可以解决这个问题
switch基本语法
Switch:开关
语法:
switch(a){
caseXX:{}
caseYY:{}
default:{}
}
在执行过程中,a的值和那个分支后面的值一样,就运行哪个分支
case后面的值可以裂解为标号(程序中指令的地址)
如果a的值与后面case后面的标号都对应不上,就 运行default里面的代码
成绩评语 用switch
break:跳出当前循环不是必须写的

Switch的好处:
(1) 执行速度比else if要快,效率更高
(2) 选择结构会更加清晰,可以一目了然
案例:判断季节
要求输入月份,判断月份所处的季节(12,1,2为冬季,以此类推)

案例:四则运算
输入数字和运算符自己输出结果

循环结构
循环结构的基本概念
循环:重复干一件事,重复执行一块代码
场景:
快递员送快递:查看送件地址-》赶往目的地-》打电话通知收件人-》收件人签字-》支付快递 重复以上过程,知道所有快递都送完
食堂阿姨:接过学生的餐盘-》询问你吃什么菜-》打菜,重复以上过程,直到所有的学生打饭完成
案例:计算平均分

以上这两种方案,去解决这个问题并不是很合适,如果你有40,400,40w的成绩的话,怎么办???
仔细观察方案2
它一直在重复的做一件事(将数加到sum中),每次的数字不一样但是很类似
改进一下

如果成绩的个数发生改变只需要稍微改动代码即可
While
While当····则······当什么条件成立的时候,则一直重复,当条件不成立的时候,停止
案例:计算1~10的和

案例:输出所有的水仙花数

案例:GDP预测

循环的套路上传到这里
(1) 初始条件
(2) 循环条件
(3) 循环体(重复要做的事)
(4) 为下一步循环做准备

后续拿到一个问题,不要瞎想,就回答下面这4个问题:
(1) 初始状态是什么
(2) 重复条件是什么
(3) 重复要做什么
(4) 怎么过度到下一个循环
案例:计算圆周率
Π = (1 – 1/3 + 1/5 – 1/7 + ·····) *4计算到最后一项的绝对值小于
1-1/3+1/5-1/7+1/9变化
(+1/1)+(-1/3)+(+1/5)+(-1/7)+(+1/9)
变化之后,和我们之前解决的1+2+3+4+……10问题非常相似,都是累加的问题,只不过每次加的内容不一样
每次化的内容,每一项的样子
t = 符号 * 1 / 分母
(1) 初始状态是什么样子
Sum = 0
Sign = 1//符号
Deno = 1//分母
(2) 重复的条件
|t|>10-6
(3) 重复要做什么
Sum += t
(4) 怎么过渡到下一个循环
Sign = sign * -1
Deno = deno+2

Do ····while
Do·····while循环是while的变种,和while循环是一样的,只是换了一种写法
语法:
Do{
循环的内容
}while(循环的条件)
从语法上来看,循环体在循环条件前面,while 循环 的循环体在循环条件的后面,如果说循环条件一次都不成立,do····while循环体在前面可以运行一次,但是while一次都不会运行。
案例:计算1~10的和(do···while)

While和do····while的区别
Do····while至少循环一次,while可能一次都不循环
案例:找出所有水仙花数(do····while)

案例:GDP预测(do····while)

for循环
(1) For循环是while循环的变种,和while循环的思想是一样的,只是换了一种写法而已能用for循环完成的都可以使用while完成,但是能用while完成的不一定能用for循环完成
(2) 在实际项目开发中,for循环的使用频率是最高的
For循环的基本语法
For(初始的条件;循环结束的条件;循环的步长){
循环体;
}
初始的条件;循环结束的条件;循环的步长 =》 决定了循环的次数
案例:1~100的和(for循环)

案例:水仙花数(for)

案例:判断一个数是否为素数
素数:只能被1和他本身整除,这个数就是素数
判断数字n是否为素数,如果(2,n-1)找不到一个数字能把它整除那它就是素数,如果说你找到一个那他就不是素数

循环辅助语句
Break
跳出整个循环,循环遇到break就不循环了
你每天都要上课,那天退学了(break)永远都不会上课
案例:判断一个数是否为素数(改进)

案例:输出1~10

Continue
跳过本次循环,接着下次继续走
你每天都要上课,那天伤病了(continue)仅仅是今天不会上课
案例:输出1~10,广东人,很忌讳数字4

函数
函数的概念
为什么需要用到函数???
案例:找出所有水仙花数
方案一:

这样的方案比较麻烦阅读起来比较困难,从上往下看,不能立即段程序时干什么的
方案二:使用函数

这种解决方案,将一个复杂的问题变成两个简单的问题,以“量”克服“难”和“大”的问题
IsSXH()他是一个很厉害的东西,你给他一个数字它可以立马告诉你这个数,是否 为水仙花数,他怎么判断的你不用管
再主程序中不断地调用isSXH即可。
函数的思想:对于一个规模比较大、难度比较高的问题提供一个解决问题的思路,将问题进行拆分,分解成多个规模小,难度比较低的问题;如果分解之后依然比较大、难度比较高可以按照这个思路继续进行分解,知道分解后的问题足够小,简单。归纳“大事化小”
(1) 需要找出1~100的素数,假设有那么个人(函数)可以帮你判断这个函数是否为函数
(2) 假设今晚我想吃小龙虾:假设有那么个人(函数)可以帮你去市场买小龙虾;假设有人(函数)可以帮你清洗干净;假设没有人(函数)可以帮你爆炒小龙虾;对于你来说,你是非常轻松的,只需要负责调度安排即可
函数的本质:就是 多条代码放一起
数学中的函数
数学中的定义:f(x)=x2 + 2x + 3
Y = f(x)= 32 + 2*3 + 3=18
F(3):将3
带入到函数f中
X:自变量
Y:因变量
定义和调用
function 函数名(参数1,参数2){
函数体
}
要求:
(1) function定义函数的关键字必须写
(2) 函数名 给函数取名字要求和变量的命名规则是一样的
见名思意,小驼峰isSXH
(3) 参数1,参数2:形参是否需要根据需求来定
调用
通过函数名进行调用,就是数学中的代入
调用函数传递参数:实参
函数名(1,2)
IsSHX(10)
函数的组成
(1) 函数名
(2) 参数
(3) 函数体:这个函数的功能,一般是有返回值,返回值就是结果
案例:判断一个数是否为素数
(1) 函数名:isPrime
(2) 参数:带判定的数字
(3) 函数体:对这个数字进行判断,返回值是布尔类型:true/false

案例:找出两个数中较大的数字
(1) 函数名:max
(2) 参数:两个数 m n
(3) 函数体:通过比较找出较大的数,返回较大的数

案例:找出100以内所有的素数
(1) 函数名:isPrime
(2) 参数:带判定的数字
(3) 函数体:对这个数字进行判断,返回值是布尔类型:true/false

案例:验证哥德巴赫思想
任意一个偶数都可以拆成两个素数去校验10000以内的偶数
10000以内的偶数可以拆,我们认为他的猜想是成立的
如果10000以内的偶数不能拆分,他的猜想不成立

变量的作用域
定义一个变量在哪里有效
局部变量
函数内部定义的变量,出了这个函数这个变量就无效了,只能在函数内部使用
比如:三国时期,袁术称帝之后,只有他自己的阵营承认他是皇帝,他发布的吗,命令只有自己的阵容才听,其他人根本不承认他这个皇帝,他发布的命令也不听。

全局变量
在函数外部定义的变量,这个变量在任何地方都可以使用
比如:汉朝皇帝发布发布的命令不管是谁都要听这个命令

作用域冲突
定义一个全局变量的a,同时函数内部也有一个变量a,在使用的过程中到底使用哪个???
总行的行长到杭州分行来开会,杭州分行的行长也姓李。小王进来汇报工作:李行长,这个是我的工作汇报。这个李行长是谁?分行的...
冲突处理:就近原则

局部变量想让外部访问怎么做?

总结:变量的作用域只需要了解,知道怎么用就可以了,在企业中去避免这个问题,可以使用不同的变量名称规范这个问题,避免使用相同的问题
考试、面试、面试官喜欢问这类问题
参数的传递
将实参传递给行参

A=888 是实参 x是形参 x变化了 原有的a的值没有任何变化,这种方式 值传递
a和x没有任何关系
你给你给你对象一百块钱,她花了就是花了和你没有任何关系
引用传递

x.age 的值变了,obj.age的值也跟着变化了,传递的值是一个对象的时候,本质传递的引
用,x是obj的别名,本质是同一个东西。
你给对象100块钱,给的银行卡,你对象花钱了,反馈到你的卡上。
总结:
常规类型传递参数是传值的方式:number string Boolean
对象类型传递参数是引用的方式:object
如果一个函数想返回多个数据的时候,可以使用引用的方式来完成。
数组
数组的定义与元素的访问
怎么用??
定义有三种方式
(1) Var a = [];
(2) Var a = new Array();
(3) Var a = [0,1,2];
访问元素:数组名+下标
a[0] a[1]
需要注意的是下标是从零开始的
所以说在使用的时候要注意一下越界的问题,比如说你有一个5个元素的数组,那么他的下表的范围【0~4】不包括5,5已经越界了
数组的本质:
一组变量的结合,或者是一组内存单元,只不过对于变量的表达方式是数组名+下表的方式
数组和循环的结合
数组属性:length
1) :告诉我们数组长度:数组名.length
2) :通过该属性可以改变数组长度

数组的常用方法
1) unshift:在数组的头部添加元素,返回值返回的是新数组的长度
shift:删除数组头部元素,返回值是删除的元素

2) indexOf:查找数组中重复出现元素第一次出现的位置,返回值是下标
lastIndexOf:查找数组中重复出现元素最后一次出现的位置,返回值是下标

3) push:在数组的尾部插入元素,返回值添加元素后数组的长度
pop:从数组尾部删除最后一个元素,返回值是删除的元素

4) slice(开始位置的下标,结束位置的下标);提取数组中指定连续的子数组,
包前,不包后
5) splice(开始删除位置的下标,要删除元素的长度,选择插入或者替换的内容),splice有“剪接”的含义,前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同参数组合就可以实现以下3个功能
1、删除操作:删除数组中指定的任意元素
2、插入操作:在数组中指定位置插入元素
3、替换操作:在数组中替换指定位置的元素

6) concat 拼接

7) sort 排序(默认是升序)

8) join将数组转成字符串

9) reverse将数组中的元素,反序输出。在原数组的基础上反序输出,不会重新创造新的数组(就是反着输出一遍)

字符串
定义:定义一个变量然后直接将字符串赋值给他
Var str = “abc123”
字符串实际上就是字符串组成的数组,所以说数组的方法他基本都有
(1) 访问字符串里面的字符
A:数组方式 str[1]
B:字符串特有的方式 charAt(1)

(2) 查找
A:数组方法 indexOf
B:字符串方法 search()方法,传入参数(要搜索的字符串)返回第一次出现位置的下标。这个方法对大小写比较敏感
Search()方法的功能比indexOf强大,它能够使用正则表达式来查找

(3) 取字符串
A:数组方法 slice()
B:字符串特有方式
subst(star,length)传入参数(第一参数,开始截取的下表,如果没有第二个参数,它就一直取到最后)(第二个参数,截取长度)

Substring(start.end)传入两个参数,第一个参数,开始截取的下标。第二个参数,截取结束的下标。包前不包后。

(4) 替换
数组方式:splice
字符串的方式:replace()替换,传入的参数(第一个参数被替换的字符,第二个参数新的字符

(5) toUpperCase():将小写字母转化为大写字母

toLowerCase():将大写转化为小写

trim():去除字符串首尾的空格

Split(x):字符串的分割,用字符串x分割,分割前是字符串,分割之后是一个数组
数组里面有一个toString,将数组转成字符串,元素之间逗号隔开

事件
事件的概念
事件源
事件名
事件注册
事件处理
以火灾为例:
Xx大酒店201房间,发生火灾,119电话报警,南湖区消防支队出警,赶往现场喷水作业成功灭火
事件源:Xx大酒店201房间
事件名:火灾
事件注册:实现已经规划好片区,xx大酒店所属盘曲归属南湖消防值对负责
事件处理:喷水
常用的事件
鼠标常用事件
(1) 单击事件

事件源:id为p1的元素
事件名:单击
事件注册:onclick=“fun()”,也就是说当单击id为p1的时候,就交给fun函数来处理
事件处理:
(2) 双击事件

(3) 鼠标按下/弹起(onmousedown/ onmouseup)

(4) 鼠标的移入/离开(onmouseenter/onmouseleave)

Onmouseover/onmouseout与onmouseenter/onmouseleave很类似后面讲
(5) 鼠标移动 onmousemove
通过鼠标移动获取坐标

(6) 鼠标滚轮onmousewheel

键盘事件
(1) keypress

Keycode属性记录了按下键的键码
Keypress事件只能捕获可打印的字符的按键,不能捕获shift ctrl alt等等不可以打印字符的按键
但是可以使用shiftkey ctrlkey等属性判断在按键的同时是否按下了shift ctrl等辅助键
(2) keydown keyup

keydown keyup·可以捕获键盘上所有的键个别除外

(1) 使用变量top会导致上下移动失败,原因是window.top这个全局变量冲突,换个函数名就好了
(2) 把变量top1和 left 移入函数中,发现只能移动5px,函数内部局部变量再每次调用函数时都会重新创建并初始化,也就是说每一次调用left和top1值都为0不会保留上一次的值。想保留,就只能使用全局变量。
其他事件
Onfocus获得焦点的事件
Onblur失去焦点的事件
Ongchange值改变事件

事件的注册
三种方法
(1) 使用onxxx属性,比如onclick = “fun()”
(2) 通过js去设置元素的onxxx属性
(3) 通过addEventListener注册

后两种办法可以将页面的内容样式和行为分离,分离之后方便分工合作
第三种方法,addEventListener第一个参数事件名,第二个参数是事件处理函数添加事件监听也可以移除,用的addEventListener。
捕获与冒泡

你点击文字,先提示“段落被单击”,然后再提示“div被单击”。因为div是段落的父容器,所以单击了段落也就单击了 div,两个都会触发这个事件。
如何规定两个触发的顺序,事件的冒泡和捕获
冒泡:按照从内到外依次触发,默认
捕获:反之

当你使用onmouseenter事件时,里层div触发进入事件,处理完了就完事了(阻断冒泡)而你使用onmouseover事件时,里层div触发进入事件,处理完了还会冒泡父容器进入事件
自己去阻止冒泡stopPropagation();
DOM
DOM概念
DOM:document object model:文档对象模型
通过js去操作html代码,添加元素,删除元素······
获取元素
(1) getElementById通过id获取,获取到的是一个元素
(2) getElementsByTagName 通过标签名获取,获取到的是一个元素集合(数组)
(3) getElementsByClassName 通过class获取,获取到的是一个元素集合(数组)
(4) getElementsByName 通过name获取,获取到的是一个元素集合(数组)
总结:获取元素可以根据标签名、id、class、name属性来获取。ld获取的结果是一
个元素,而其他获取的是一个集合。
Document对象支持以上四种,而element对象仅支持
getElementsByTagName和getElementsByClassName
修改元素
(1) 修改内容
同过innerText属性读取或设置标签内部的文件
可以用innerHTML属性读取或设置标签内部的文件
两个区别:innerHTML会对HTML语言解析
innerText只是改变文本内容

(2) 修改样式
A:xxx.style.yyy
B:xxx.calssname = “………”(相当于修改了class属性)

添加删除元素
动态添加
(1) createElement创建一个元素节点
createElement(”p”)创建一个段落
(2) createTextNode创建一个文本节点
createTextNode(”文本内容”)创建一个值为”文本内容”的文本节点
(3) appendChild添加子节点
(4) removeChild删除子节点

动态删除

导航
document根节点
parentNode获取父节点
childNodes获取所有的子节点
firsChild第一个子节点
lastChild最后一个子节点

BOM
概念:browser object model(浏览器去项目模型)
常用对象
Window窗口 浏览器窗口
我们定义的全局变量都是window对象的属性和方法

窗口body的宽度:window.innerWidth
窗口body的高度:window.innerHeight
常用的方法
Window.onload:窗口加载事件

Open:打开一个新的窗口。三个参数,第一个参数(打开窗口的路经),第二个参数(打开窗口的方式),第三个参数(对新打开窗口的描述,宽高等·····)
Close:关闭一个窗口
Moveto:移动一个窗口,以窗口的左上角坐标为起点
Focus:视窗口获得焦点
Resizeto:改变窗口的大小

Screen:屏幕,也是window下面的一个对象,在使用的时候可以用window.screen也可以把window去掉
屏幕常用的属性:宽和高(可用的高和宽不包括任务栏)

Location地址
http://127.0.0.1:8848/wed13js/6.html
协议://主机:端口/路径

历史记录
hstory:历史记录
记录当前窗口的历史,可以进行页面的一个转换
Back:返回上一页
frward:进入下一页
Go:确认进入到那一页(go的值为-1回到上一页)

案例
弹窗
Alert()警告提示框,也是window对象下的方法,window可以不写
Prompt(” 提示信息”,”默认值”)信息提示输入框。当点击确认后才把值返回,否则返回的是空
Confirm(“提示的信息“):确认框。点击确认返回true,顶级取消返回false

计时事件
Setinterval(“函数“,”毫秒数“);//计时器,每隔多长时间调用一次函数
Clearinterval(计时器);//停止一个计时器

setTimeout(“函数名“,”毫秒数“);//延时器,就是隔了多久之后调用一次函数


浙公网安备 33010602011771号