IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript基础使用 -> 正文阅读

[JavaScript知识库]JavaScript基础使用

注意:本文只是入门使用,仅作参考,读者若想进一步提升自己请借助相关网站中的具体说明来详细了解JS的内容

Javascript组成

分层作用
HTML(结构层)利用语义化标签搭建网页
CSS(样式层)利用样式进行美化
Javascript(行为层)可以给网页添加动态效果

JavaScript由ECMAScript、DOM、BOM组成

ECMAScript:欧洲计算机协会,每年六月中旬定制语法规范

DOM(Document Object Model):文档对象模型

BOM(Browser Object Model):浏览器对象模型

Javascript书写规范

需要使用script标签包裹,可以放在任何地方,可以有任意多

内置函数

alert函数

alert(""/’’):警告弹窗函数;可多次使用,会依次弹出

prompt函数

prompt(""/’’):提示弹窗函数;;可多次使用,会依次弹出

控制台使用

在JavaScript中,我们可以通过console对象的log方法在控制台中输出一定内容

console.log(参数)

字面量

Javascript数据类型一共六种,五个基本数据类型和一个引用类型

基本数据类型:String(字符串类型), Number(数字类型), Boolean(布尔类型), Undefined(未定义类型), Null(空对象类型)

Number:在控制台中以蓝色显示,包括整数、浮点数;浮点数计算保留17位,以二进制计算(IEEE浮点数算数标准)。数值范围为-253~253,超过可以用Infinity(或-Infinity)。0/0会返回一个特殊值NaN,12/0会返回Infinity.NaN勿论什么运算都返回NaN。

String:在控制台中以黑色显示

引用类型:Object(引用类型),包括函数、数据、正则、DOM、BOM

浏览器隐式转换(Number(转换内容))

布尔类型隐式转换为数字
True1
False0
未定义类型隐式转换为数字
undefinedNaN(NaN和数字比较结果永远是False)
空对象类型隐式转换为数字
null0
数字类型数值隐式转换为布尔值
0、NaNFalse
其余数字True
String格式隐式转换为数字
“”0
“字符”或“字符+数字”或“数字+字符”NaN
纯数字(包括数值运算)数值
String类型隐式转换为布尔值
空字符串False
非空字符串True

所以有(NaN&&Infinity=NaN), (null&&undefined=null), (“张三”&&“李四”=“李四”)

未定义类型隐式转换为布尔值
undefinedFalse
空对象类型隐式转换为布尔值
nullFalse

typeof

typeof +变量用于数据类型判断

+的应用

当没有字符串的时候,+为数学加法运算

当有字符串的时候,+为连字符

parseInt函数

可以将字符串中数字形式字符串转换为数字(整数部分),从左到右依次检测数字,碰到第一个非数字或者小数点为止

多段数字中间穿插非数字字符自会返回第一段数字

如果第一个段字符不是数字,则会返回NaN

parseFloat函数

可以将字符串中的数字形式字符串转换为数字(包括小数部分)

数学对象(Math)

从Math库中调特定数值和函数

变量

变量声明和赋值可以放一起也可分开。也可以多个同时声明或者声明&赋值

各大浏览器厂商都有自己的解析器,在翻译代码的时候会将变量声明部分提升到作用域最前面

比较运算

特别注意

符号意义
===全等
!==不全等
符号类型意义
单个等号赋值运算
两个等号相等判断
三个等号全等判断(数值类型和大小都一样)

IIFE

在表达式形式函数声明的同时立刻执行一次

写法是函数最后坠一个小括号

正确写法

var fun = function(){
    console.log('表达式')
}()

错误写法

function sum(){
    console.log('表达式')
}()

关键字形式的函数如果想在声明是立即执行一次,除了后面加括号以外,前面需要加+、-、!中任意一个,或者用括号整体括起来变成表达式形式函数也可

+function(){
    console.log('表达式')
}()
-function() fun1{
    console.log('表达式')
}()
!function() fun2{
    console.log('表达式')
}()function() fun3{
    console.log('表达式')
}()

数组相关的函数

此处array泛指实际数组

函数用法
array.push()尾部移除一个元素
array.pop()尾部添加一个元素
array.length()长度计算
array.unshift()头部添加一个元素
array.shift()头部移除一个元素
array.join()用某一字符将数组中元素连起来
array.reverse()将数组元素倒置
array.indexOf()返回元素下角标(即元素位置)
array.includes()检测元素是否在数组中,返回true/false
array.slice(起始索引,结束索引)从数组中切除一个子数组
array.splice(起始位置,切割长度)对数组进行切割
array.splice(起始索引,切割长度,插入值)对数组插入替换(如果插入切割长度为0)

类数组对象-arguments

概述:函数体中拥有一个引用类型数据arguments。是引用类型数据

意义:在函数没有形参的情况下,在函数体中可以获取到传递给函数的实参

规则:类数组对象不是数组类似数组,只能使用length方法

<script>
    function fun(){
        console.log(arguments)
    }
    fun(1,2,3,4,5,6,7,8,9)
</script>

正则表达式

正则表达式(regulate expression)是一种匹配字符串的模式规则

正则写在//之间,//称为定界符

正则表达式在JS中属于引用类型数据

正则的书写规则

字符串方法用途
split根据匹配字符串切割父字符串
match使用正则表达式与字符串作比较,返回一个包含匹配结果的数组
search使用正则表达式或指定字符串进行搜索,返回第一个出现匹配项的下角标
replace使用正则表达式和字符串比较,然后用新的子串来替换被匹配的子串
正则表达式方法用途
exec可以在目标字符串中进行一次匹配,返回索引
test可以检测正则中的数据是否在字符串中出现,返回true或者false
修饰符意义
iignore,即忽略大小写
gglobal,即全局定义
边界符意义
^是以后面的字符串开头的(/string/)
$是以 前 面 的 字 符 串 结 尾 的 ( / s t r i n g 前面的字符串结尾的(/string /string/)
预定义类意义
\d[0-9],匹配任意一个数字字符
\D非[0-9],匹配仍以一个非数字字符
\s匹配任意空白
\S匹配任意不是空白的字符
\w可以匹配任意字母、数字、下划线
\W可以匹配任意除字母、数字、下划线以外的内容
量词性质意义
{n}硬性量词对应零次或者n次
{n,m}软性量词至少出现n次但不超过m次(中间没有空格)
{n,}软性量词至少出现n次
?软性量词出现零次或者一次
*软性量词出现零次或者多次(任意次)
+软性量词出现一次或者多次(至少一次)

字符集

简单类

就是将任意多个字符进行集合书写,匹配一个符合条件的字符(比如:[abc])

范围类

有时匹配内容过多,且类型相同,可以在中间加个横线(比如:[0-9] [A-Z] [a-z])

组合类

允许中括号匹配不同类型的单个字符,或者是一类及多类,或者单一符号(比如:[0-9a-z])

分组

正则中使用()表示分组,内部内容会作为一个整体进行操作

后期如果小括号后面有量词,表示小括号内部整体重复匹配多次

中文匹配:[\u4e00-\u9fa5]

三元运算符

语法为

A ? B:C

A=true返回B

B=false返回C

underscore库

underscore_

函数意义
_.random(x, y)x-y之间产生随机数
_.max([a,b,…])数组中求最大
_.min([a,b,…])数组中求最小
_.uniq([a,b,…])数组去重
_.keys(dic[name])字典取键
_.values(dic[name])字典取值

视频与音频

视频标签video

双闭合标签video可以展示视频

video标签支持播放视频的格式只有三个:MP4、OGG、webM

默认设置

src:视频地址

controls:显示默认控制条

poster:视频海报

autoplay:自动播放

muted:自动静音

loop:循环播放

自定义设置

自定义设置按钮(播放暂停等)

currentTime:可以通过currentTime属性操作当前视频播放到的时间

duration:可以通过duration属性操作总时间

volume:可以通过volume属性操作视频的声音

onplay:如果播放,触发后续封装事件

onpause:如果暂停,触发后续封装事件

ontimeupdate:如果视频时间发生变化,触发后续封装事件

音频标签audio

双闭合标签audio可以展示视频

audio标签支持播放视频的格式只有三个:MP3、OGG、wav

默认设置

src:音频地址

controls:显示默认控制条

autoplay:自动播放

muted:自动静音

loop:循环播放

自定义设置

自定义设置按钮(播放暂停等)

currentTime:可以通过currentTime属性操作当前音频播放到的时间

duration:可以通过duration属性操作总时间

volume:可以通过volume属性操作音频的声音

onplay:如果播放,触发后续封装事件

onpause:如果暂停,触发后续封装事件

ontimeupdate:如果音频时间发生变化,触发后续封装事件

浏览器存储功能

浏览器存储共能分为两类:localStorage&sessionStorage,只可以存储字符串

本地存储(localStorage)

存储不会随着网页关闭、电脑关机而消失

方法意义
localStorage.setItem(‘key’:‘value’)本地存储
localStorage.getItem(‘key’)读取存储数据

如果遇到其他类型的数据,需要转化成字符串再进行存储

例如json类型数据,使用方法JSON.stringify()进行字符串化处理,反过来可以使用JSON.parse()

会话存储(sessionStorage)

存储会随着网页关闭、电脑关机而消失,后缀关键字方法与本地存储相同

过度动画

样式属性transition是一个综合属性,包括:

transition-property:过渡属性

transition-duration:过渡动画总时间

transition-timing-function:过渡动画速率

transition-delay:过渡动画延迟时间

过渡动画触发条件:事件触发,属性变化

过渡动画速率属性值意义
linear匀速执行
ease-in规定以慢速开始动画
ease-out规定以慢速结束动画
ease规定以慢速开始,慢速结束动画
ease-in-out规定以慢速开始,慢速结束动画
cubic-bezier(0.97, 1.62, 0, 0.39)贝塞尔曲线
<style>
    *{
        margin: 0;
        padding: 0;
    }
    div{
        width: 200px;
        height: 200px;
        background: cyan;
        margin: 100px auto;
        /* 添加动画效果 */
        transition: width 2s linear 0s,
            height 2s linear 0s;
    }
    div:hover{
        width: 400px;
        height: 400px;
    }
</style>
<body>
    <div></div>
</body>

2D变换动画

缩放scale

属性值为数字,表示变换为原来的多少倍

一个属性值时控制宽高;两个属性值时分别控制宽高

transform: scale(1.5);		/* 属性值只有一个。宽高为以前的1.5倍 */
transform: scale(1.5,2);	/* 属性值两个。宽为以前的1.5倍,高为以前的2倍 */

旋转rotate

属性值为度(degree)

transform: rotate(150deg);		/* 旋转150度 */

平移translate

属性值为像素,有两个,第一个是水平方向(向左为正),第二个是垂直方向(向下为正)

transform: translate(20px, 30px)	/* 向左平移20像素,向下平移30像素 */

3D变换动画

旋转rotate

以x轴旋转:rotatex()

以y轴旋转:rotatey()

以z轴旋转:rotatez()

括号内属性值依然为度(degree)

要使用父盒子嵌套,父盒子必须含有perspective属性

平移translate

以x轴旋转:rotatex()

以y轴旋转:rotatey()

以z轴旋转:rotatez()

括号内属性值依然为度(degree)

动画animation

语法格式

animation: 	animation-name, 
			animation-duration, 
			animation-timing-function,
			animation-delay,
			animation-iteration-count

animation-name:务必符合标识符规范
animation-duration:单位是s/ms
animation-timing-function:动画速率
animation-delay:第一次动画的时延
animation-iteration-count:代表执行动画的次数,数字或者infinite
animation-direction:动画是否反向执行,属性值alternate
animation-fill-mode:动画执行完是否停留在终止的地方forwards

动画和函数一样需要先声明再使用

canvas

canvas属性只有两个,width和height,用于设置画布宽高

canvas的width和height不能使用css进行设置,会失真

标签对中的文职是用来提示低版本浏览器的,高版本浏览器看不到

<canvas width="500" height="400">
	当前浏览器版本不支持,请升级浏览器
</canvas>
方法(矩形)意义
ctx.fillStyle填充样式(颜色)
ctx.fillRect填充大小(四个参数分别是起始宽高和宽高)
ctx.strokeStyle绘制样式(颜色)
ctx.strokeRect绘制大小
ctx.clearRect清屏(四个参数分别是起始宽高和宽高)
方法(路径)意义
ctx.beginPath开始路径
ctx.moveTo(x,y)移动绘制点
ctx.lineTo(x,y)描述绘制路径(可多次绘制)
ctx.closePath()闭合路径
ctx.fill()填充
ctx.stroke()绘制
ctx.globalAlpha=(0-1)透明度
方法(圆弧)arc(x,y,startAngle,endAngle,direction)意义
(x,y)圆点
(starAngle,endAngel)起始与结束的角度(弧度制)
directionTrue/False=anticlockwise/clockwise
方法(线形)意义
ctx.lineWidth=线的宽度,单位是px
ctx.lineCap=线的末端样式,属性值有butt/round/square
ctx.lineJoin=线段的连接方式,属性值有round/bevel/miter
ctx.setLineDash([x,y])设置虚线样式,x,y成组出现
ctx.setLineDashoffset=设置起始偏移量
方法(文本)意义
ctx.font=‘30px 微软雅黑’30像素,字体为微软雅黑
ctx.fillText()画出括号内的文本
ctx.textAlign=’’起始位置,属性值为right/center/left等
方法(渐变)意义
ctx.createLinearGradient(x,y,w,h)/addColorStop(n,‘color’)线性渐变,n为权重
var linear = ctx.createRadialGradient(x0,y0,x1,y1,w,h)径向渐变,0为起始坐标,1为结束坐标
/* 线性渐变 */
var linear = ctx.createLinearGradient(x,y,w,h)
linear.addColorStop(0,'red')
linear.addColorStop(0.5,'blue')
linear.addColorStop(1,'yellow')
ctx.fillStyle = linear
ctx.fillRect(10,10,200,100)
/* 径向渐变 */
var linear = ctx.createLinearGradient(95,25,25,102,20,40)
linear.addColorStop(0,'red')
linear.addColorStop(0.5,'blue')
linear.addColorStop(1,'yellow')
ctx.fillStyle = linear
ctx.fillRect(0,0,200,100)
方法(阴影)意义
shadowBlur=模糊效果
shadowColor=模糊颜色
shadowOffsetX=模糊X偏移
shadowOffsetY=模糊Y偏移
方法(引入图片)意义
ctx.drawImage(image,x1,y2,w,h,x2,y2,w,h)前四个数是图片的切片,后四个数是图片切片的位置
// 创建一个image元素
var image = new Image()
// 导入图片
image.src = ''
必须在onload之后再进行图片渲染,否则不会渲染
image.onload = function(){
	ctx.drawImage(image,100,100)
}
方法(变形)意义
ctx.save()保存当前状态,不带参数
ctx.restore()保存当前状态,不带参数

绘图具体参考

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:43:24  更:2021-09-05 10:44:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:48:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码