json格式字符串
首先是一个字符串,拥有自己的属性和方法
JSON字符串有自己的格式和要求
常见的字符串普通字符串数字字符串
html格式字符串
查询字符串
是一种用来进行前后端数据交互的字符串,用来传递参数
由key和value组成
key和value中间使用"="链接
每一条键值对之间使用&符号链接
JSON格式字符串:'{"name":"rose","age":20}'
外面使用单引号包裹
里面只能有对象数据类型或数组数据类型
里面的键和值必须用双引号包裹,值的位置如果是数字或布尔值可以不用引号
在键和值以外的地方只能用{} [ ]
在数据末尾不能有多余逗号
JSON格式字符串操作两个方法
js数据类型转成JSON数据类型
语法:JSON . stringify(要转换的js数据类型)
JSON数据类型转成js数据类型
语法:JSON . parse(要转换的JSON格式数据类型)
ES6中的模板字符串
是ES6中的一种书写字符串的格式
写法:`内容`
区别:普通字符串:不能换行书写
不能使用变量
模板字符串:可以换行书写
可以使用变量 语法:${变量}
数字常用方法
Math对象
是一种复杂数据类型
通用语法:Math . 方法名()
常用方法
random()
语法:Math . random()
作用:出现一个随机数,包含零不包含1
小数点后十六位
round()
语法:Math . round(数字)
作用:用来进行四舍五入操作
abs()
语法:Math . abs(数字)
作用:求一个数的绝对值
ceil()
语法:Math . ceil(数字)
作用:对一个数进行向上取整
floor()
语法:Math . floor(数字)
作用:对一个数进行向下取整
max()
语法:Math . max(数字1,数字2...)
作用:求所有数字的最大值
min()
语法:Math . min(数字)
作用:求所有数字的最小值
sqrt()
语法:Math . sqrt(数字)
作用:求一个数字的算术平方根
pow()
语法:Math . pow(底数,指数)
作用:求一个数的多少次方
Pi()
语法:Math . Pi(数字)
作用:获取近似于Π的值
进制转换、
就是数值到了一定的位数向前进一,即进位计数值
进制的分类:
二进制
八进制
十进制
十六进制
进制的转换
其他进制转换为十进制
语法:parseInt(要转换的数,把这个数当作几进制看待)
返回值:就是一个转换好的十进制数
十进制转换为其他进制
语法:你要转换的数 . toString(要转成的进制数)
返回值:就是一个转换好的进制数
保留小数位数
toFixed()
语法:要保留的数字 . toFixed(要保留的小数位数)
返回值:字符串类型的保留好的小数位数(四舍五入操作),如果保留的小数位数不够,用 0 自动补齐
时间对象
创建时间对象
语法:naw Date()
是一个内置对象,是一个复杂数据类型
获取当前终端时间
语法:var 变量名 = new Date()
返回值:当前电脑终端的时间
创建指定时间
语法1:传递数字
var 变量名 = new Date(数字)
返回值:创建的指定时间
注意:数字:传递的数字至少要两个,如果只传递一个,这个数字表示的是从格林威治时间到传递的数字的毫秒数
如果传递两个数字,第一个表示年份信息,第二个表示月份信息
月份信息从零开始,0--11月。即 0 表示1月份
格林威治时间:1970年1月1日0时0分0秒
如果传递多个数字:第三个表示日期信息
第四个表示时钟信息
第五个表示分钟
第六个表示秒钟
第七个表示毫秒
语法2:传递字符串
语法:var 变量名 = new Date()
字符串:'2000-12-10 12:30:23 '
'2000/12/10 12:30:23 '
注意:年月日和时分秒之间要有空格
如果使用字符串方式传递参数,写几月份就是几月份
时间对象常用方法
获取方法
设置方法
获取方法
getFullyear()
语法:时间对象 . getFullyear()
返回值:就是获取到的年份信息
getMonth()
语法:时间对象 . getMonth()
返回值:就是获取到的月份信息
getDate()
语法:时间对象 . getDate()
返回值:就是获取到的日期信息
getHours()
语法:时间对象 . getHours()
返回值:就是获取到的小时信息
getMinutes()
语法:时间对象 . getMinutes()
返回值:就是获取到的分钟信息
getSeconds()
语法:时间对象 . getSeconds()
返回值:就是获取到的秒钟信息
getMilliseconds()
语法:时间对象 . getMilliseconds()
返回值:就是获取到的毫秒信息
getDay()
语法:时间对象 . getDay()
返回值:就是获取到的周信息
getTime()
语法:时间对象 . getTime()
返回值:就是获取到的当前时间戳信息
设置方法
setFullYear()
语法:时间对象 . setFullYear(年份信息)
setMonth()
语法:时间对象 . setMonth(月份信息)
setDate()
语法:时间对象 . setDate(日期信息)
setHours()
语法:时间对象 . setHours(小时信息)
setMinutes()
语法:时间对象 . setMinutes(分钟信息)
setSeconds()
语法:时间对象 . setSeconds(秒钟信息)
setMillisecons()
语法:时间对象 . setMillisecons(毫秒信息)
setTime()
语法:时间对象 . setTime(时间戳信息)
定时器
就是在一段时间后执行一段程序
两种定时器
1,一次性定时器
2,反复性定时器
开启定时器
一次性定时器
语法:setTimeout(函数,时间)
函数就是时间到以后开始执行的函数
时间就是一个毫秒数
反复性定时器
语法:setInterval(函数,时间)
函数就是每间隔多长时间以后开始执行的函数
时间就是一个毫秒数
定时器的返回值
每一种定时器是由返回值的,就是一个数字,表示的是页面上第几个定时器,不区分定时器的种类
关闭定时器
1,一次性定时器
clearTimeout(要关闭的定时器)
2,反复性定时器
clearInterval(要关闭的定时器)
可以交替使用
建议关闭时一一对应
异步编程
即非同步编程
同步编程
即从上到下,从左到右
先执行同步再执行异步代码
异步代码有哪些
定时器
一次性定时器
反复性定时器
异步代码执行:会在宿主环境中执行,执行完毕后去到任务队列中等待执行,最后在执行栈中没有同步代码执行时再执行异步代码
BOM
提供了一整套用来操作浏览器的属性和方法,指浏览器能让我们来操作的部分
比如:历史记录,地址栏,滚动条
浏览器中的顶级对象
顶级对象(最高级)对象是window
顶级对象可以省略不写
浏览器的弹出层
常见的弹出层
弹出层:alert()
语法:alert("你说的内容")
语法:window . alert("你说的内容")
表现形式:你说的内容 + 确定按钮
输入框:prompt("你让输入的内容")
语法:prompt("你让输入的内容")
语法:window . prompt()
表现形式:你提示的内容 + 确定按钮 + 取消按钮
询问框:confirm()
语法:confirm("询问的信息")
语法:window . condirm("询问的信息")
表现形式:内容 + 确定按钮 + 取消按钮
返回值:是一个布尔值
点击确定返回true
点击取消返回false
浏览器的地址栏信息
window下面有一个location属性,是一个对象数据类型
保存地址栏相关的属性和方法
location里面的属性和方法
href属性
是一个读写属性
读(获取)
语法:window . location . href
返回值:当前页面的地址栏中的信息,以url编码形式返回
写(设置)
语法:window . location . href = 值(地址)
reload()属性
注意:不能使用在页面一打开就执行的位置
作用:用来刷新页面
获取浏览器的窗口尺寸
获取浏览器的高
语法:window . innerHeight
获取浏览器的宽
语法:window . innerWidth
获取到的尺寸是包含滚动条的尺寸
浏览器中的常用事件
常见的事件
onload
onresize
onscroll
onload事件
语法:window . onload = function (){}
执行时机:是在页面上所有的资源加载完毕后执行
所有资源:包含结构,样式,交互,图片,音频,视频 ...
如果没有涉及dom的操作,script标签可以书写在页面任何位置
如果涉及到操作dom,最好写在body末尾,如果写在head标签末尾需要加上onload事件
inresize事件
语法:window . onresize = function(){}
触发时机:在浏览器窗口大小发生变化时触发这个事件
onscroll事件
语法:window . onscroll = function (){}
触发时机:当滚动条的位置发生改变时
滚动到
即滚动到一个指定位置
语法:window . scrollTo()
需要传递参数来实现
1,传递的是数值
2,传递的是对象
第一种:传递数值
语法:window . scrollTo(x,y)
注意:x表示横坐标距离,y表示纵坐标的距离,传递参数时必须传递两个值,只传递一个会报错
没有平滑过渡效果,瞬间到指定位置
第二种:传递对象
语法:window . scrollTo({left : xxx,top : yyy})
注意:可以传递一个值,也能传递两个值
只传递left top也没有平滑效果
如果想要实现平滑过渡,需要一个属性,behavior:smooth
浏览器的卷去尺寸
就是超过浏览器的可视区域上面的距离和左侧的距离
卷去的宽度和高度
卷去的高度
语法:document . documentElement . scrollTop
返回值:就是获取到的尺寸
注意:这个语法需要有doctype标签,如果没有
语法:document . body . scrollTop
返回值:就是获取到的尺寸
注意:这个语法不需要有doctype标签,
需要一个兼容性写法
兼容语法:document . documentElement . scrollTop || document . body . scrollTop
卷去的宽度
语法:document . documentElement . scrollLeft
返回值:就是获取到的尺寸
注意:这个语法需要有doctype标签,如果没有
语法:document . body . scrollLeft
返回值:就是获取到的尺寸
注意:这个语法不需要有doctype标签,
需要一个兼容性写法
兼容语法:document . documentElement . scrollLeft || document . body . scrollLeft