哔哩哔哩:https://www.bilibili.com/video/BV1d7wsesEW2/
一、理论基础
1、什么是Javascript
1、Javascript简介
JavaScript是一种用于开发Web应用程序的脚本语言。它最初由Netscape公司开发,后来成为ECMA国际组织的标准。JavaScript通常用于在Web浏览器中创建交互式用户界面和动态效果,但它也可以用于服务器端编程和桌面应用程序开发。
JavaScript是一种解释性语言,它不需要编译器即可运行。JavaScript可以直接嵌入到HTML页面中,并通过Web浏览器解释和执行。JavaScript支持许多编程范式,包括面向对象、函数式和命令式编程。
JavaScript是一种弱类型语言,这意味着在声明变量时不需要指定类型。它也是一种动态语言,这意味着在运行时可以修改对象的结构和类型。
由于其广泛的应用和可移植性,JavaScript已成为Web开发中最重要的编程语言之一。
2、Javascript版本
以下是JavaScript各个版本的主要特性和发布日期的表格:
版本 | 发布日期 | 主要特性 |
---|---|---|
ES5 | 2009年 | 严格模式、JSON支持、数组方法、Function.prototype.bind()方法等 |
ES6 | 2015年 | 箭头函数、模板字面量、类、解构赋值、let和const关键字、Promise等 |
ES7 | 2016年 | Array.prototype.includes()方法、指数操作符、async/await、Object.entries()和Object.values()方法等 |
ES8 | 2017年 | async/await语法的改进、Object.entries()和Object.values()方法的改进、字符串方法等 |
ES9 | 2018年 | 异步迭代器、正则表达式的一些改进、rest/spread属性、Promise.prototype.finally()方法等 |
ES10 | 2019年 | Array.prototype.flat()和Array.prototype.flatMap()方法、Object.fromEntries()方法、字符串方法的改进、Symbol.prototype.description属性等 |
需要注意的是,不同的浏览器支持的JavaScript版本可能不同。开发人员应该了解其目标受众所使用的浏览器支持哪些版本,并根据需要选择适当的版本来编写代码。
3、Javascript能做什么
- 动态网页:JavaScript可以使网页的内容和行为动态化,使用户交互更加丰富和友好。
- Web应用程序:JavaScript可以实现许多功能强大的Web应用程序,如社交网络、电子商务网站、在线游戏等。
- 浏览器插件和扩展:JavaScript可以用于开发各种浏览器插件和扩展,为用户提供更好的浏览体验。
- 服务器端应用程序:JavaScript也可以用于编写服务器端应用程序,如Node.js平台,它可以用于处理大量的并发请求,构建高效的Web应用程序和服务。
- 移动应用程序:JavaScript可以与移动应用程序开发框架(如React Native、Ionic等)一起使用,实现跨平台的移动应用程序开发。
- 数据可视化和图形处理:JavaScript可以用于可视化和处理大量数据,如图表、地图、图形等。
总的来说,JavaScript是一种非常灵活和强大的编程语言,它在Web开发、移动应用开发、服务器端应用开发等多个领域都有着广泛的应用。
2、Javascript框架简介
框架(Framework)指的是一套经过设计和编写的、被用作开发某种类型软件的标准、通用组件或者模块的集合。它们通常包括了一些常用的函数库、工具、规范和设计模式等,可以帮助开发者更快、更高效地开发软件
1、前端框架
JavaScript框架是为了方便JavaScript开发者使用而提供的一些封装和工具,它们可以加快Web应用程序的开发速度,提高代码的可读性和可维护性。以下是一些流行的JavaScript框架:
- React:React是一个由Facebook开发的JavaScript框架,用于构建用户界面。它采用了组件化的开发方式,使得Web应用程序中的UI组件可以进行复用和拼装。React还提供了虚拟DOM(Virtual DOM)技术,可以提高Web应用程序的性能和响应速度。
- AngularJS:AngularJS是由Google开发的JavaScript框架,用于构建单页应用程序(Single-Page Application)。它采用了MVVM(Model-View-ViewModel)的开发模式,使得Web应用程序的逻辑和UI分离,提高了代码的可读性和可维护性。
- Vue.js:Vue.js是一个轻量级的JavaScript框架,用于构建用户界面。它采用了MVVM模式和响应式数据绑定(Reactive Data Binding)技术,使得Web应用程序中的UI组件和数据可以实现自动更新,提高了Web应用程序的性能和响应速度。
- jQuery:jQuery是一个流行的JavaScript库,提供了许多常用的操作和功能的封装,使得Web开发变得更加高效和便捷。它可以帮助开发者实现DOM操作、事件处理、Ajax数据请求等常见的任务,是Web开发中最为流行的JavaScript框架之一。
- Ember.js:Ember.js是一个基于MVC(Model-View-Controller)开发模式的JavaScript框架,用于构建单页应用程序。它提供了许多常用的功能和组件,可以帮助开发者更加高效地构建Web应用程序。
以上是一些流行的JavaScript框架,每个框架都有其特定的用途和优缺点,开发者可以根据具体需求选择合适的框架。
2、后端框架
JavaScript后端框架是用JavaScript语言编写的服务器端应用程序框架,它们可以帮助开发者更快、更高效地开发Web应用程序和服务。以下是一些常见的JavaScript后端框架:
- Express.js:Express.js是一种基于Node.js的Web应用程序框架,它提供了简单、灵活的API,可以快速构建各种类型的Web应用程序和API服务。
- Koa.js:Koa.js是另一种基于Node.js的Web应用程序框架,它使用了ES6的特性,如async/await和生成器函数等,提供了更加简单、优雅的API。
- Nest.js:Nest.js是一种基于Node.js的框架,它使用了现代化的架构模式和设计原则,如模块化、依赖注入和面向切面编程等,可以帮助开发者更加高效地构建可扩展、可维护的Web应用程序和服务。
- Hapi.js:Hapi.js是另一种基于Node.js的Web应用程序框架,它提供了一组丰富的插件和工具,可以帮助开发者构建高质量的Web应用程序和API服务。
以上是一些常见的JavaScript后端框架,它们都具有不同的特点和优势,可以根据具体的应用场景选择最合适的框架。
3、Javascript引擎简介
JavaScript是一种高级脚本语言,需要通过JavaScript引擎来执行。以下是一些常见的JavaScript引擎:
- V8引擎:V8是由Google开发的JavaScript引擎,主要用于Google Chrome浏览器和Node.js运行时环境中。
- SpiderMonkey引擎:SpiderMonkey是由Mozilla基金会开发的JavaScript引擎,主要用于Firefox浏览器和其他Mozilla项目中。
- JavaScriptCore引擎:JavaScriptCore是由苹果公司开发的JavaScript引擎,主要用于Safari浏览器和iOS操作系统中。
- Chakra引擎:Chakra是由微软公司开发的JavaScript引擎,主要用于Internet Explorer浏览器和Microsoft Edge浏览器中。
- Nashorn引擎:Nashorn是由Oracle公司开发的JavaScript引擎,主要用于Java虚拟机中。
- Rhino引擎:Rhino是由Mozilla基金会开发的JavaScript引擎,主要用于Java虚拟机中。
- QuickJS引擎:QuickJS是由Fabrice Bellard开发的JavaScript引擎,它的特点是体积小、启动快、执行速度快。
以上是一些常见的JavaScript引擎,它们都有自己的特点和适用场景。
4、如何学习Javascript
- 菜鸟教程
- 哔哩哔哩
准备工作:html + css 基础
熟悉几款编辑器:sublime、vscode、webstorm
二、环境搭建
1、Javascript开发环境搭建
- 谷歌浏览器
- vscode编辑器卸载vscode 删除个人配置:%appdata% >>> code删除插件:%userprofile% >>> .vscode官网地址:https://code.visualstudio.com/下载地址:https://code.visualstudio.com/Download选择user64位国内镜像:https://vscode.cdn.azure.cnhttps://vscode.cdn.azure.cn/stable/c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1/VSCodeUserSetup-x64-1.65.2.exe
- 字体:22
- 自动保存
- 汉化插件:chinese
- nodejs插件:code runner
2、JavaScript用法
安装在浏览器打开文档的插件:open in browser
- javascript代码须位于 <script></script>之间
- 旧的 JavaScript 例子也许会使用 type 属性 <script type=”text/javascript”></script>
- <head>中的javascript
- <body>中的javascript
- 外部文件myScript.js可通过完整的 URL 或相对于当前网页的路径引用外部脚本在外部文件中放置脚本有如下优势:
- 分离了 HTML 和 JavaScript代码
- 使 HTML 和 JavaScript 更易于阅读和维护
- 已缓存的 JavaScript 文件可加速页面加载
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
路径 | 描述 |
---|---|
<script src=”myScript.js”> | myScript.js 位于与当前网页相同的文件夹 |
<script src=”js/myScript.js”> | myScript.js 位于当前文件夹的 static文件夹中 |
<script src=”/js/myScript.js”> | myScript.js 当前站点根目录的 static文件夹中 |
<script src=”../myScript.js”> | myScript.js 位于当前文件夹的上一级文件夹中 |
三、基础语法
1、JavaScript基础语法(一)
JavaScript 程序就是一系列的编程语句。
JavaScript 语句由以下构成:
值、运算符、表达式、关键词和注释。
- 基础语句JavaScript 会忽略多个空格。您可以向脚本添加空格,以增强可读性。
- 标识符区分大小写
- 标识符
- 注释
- 关键字与保留字
2、JavaScript基础语法(二):变量
首先熟悉一个输出的语法:console.log()
- 变量变量名和值组成,变量作用是临时保存数据;
- 声明变量第一步:声明变量;第二步:赋值;第一次赋值:初始化第二次赋值:更新
- 变量提升
- 变量命名规则1、第一个字符必须是一个字母、下划线(_)或美元符号($)2、剩下的其他字符可以是字母、下划线(_)、美元符号($)或数字3、按照惯例,使用小驼峰命名法(非强制)
3、JavaScript基础语法(三):数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
如何查看数据类型:typeof 、typeof()
1、字符串String
2、数字(Number)
3、布尔(Boolean)
4、Null、Undefined
4、JavaScript基础语法(四):运算符
= 用于赋值
+ 用于加法 和 拼接
JavaScript 算数运算符
算数运算符用于对数字执行算数运算:
运算符 | 描述 |
---|---|
+ | 加法 |
– | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模(余数) |
++ | 递加 |
— | 递减 |
JavaScript 赋值运算符
赋值运算符向 JavaScript 变量赋值。
运算符 | 例子 | 等同于 |
---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x – y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
加法赋值运算符(+=)向变量添加一个值。
JavaScript 比较运算符
运算符 | 描述 |
---|---|
== | 等于 |
=== | 等值等型 |
!= | 不相等 |
!== | 不等值或不等型 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
? | 三元运算符 |
JavaScript 逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑与 一假则假 |
|| | 逻辑或 一真则真 |
! | 逻辑非 取反 |
JavaScript 类型运算符
运算符 | 描述 |
---|---|
typeof | 返回变量的类型。 |
instanceof | 返回 true,如果对象是对象类型的实例。 |
5、JavaScript基础语法(五):判断
if 语句:(可嵌套)
- 单分支if (条件语句){
当条件为 true 时执行的代码
} - 双分支if (条件语句){
当条件为 true 时执行的代码
}else{
当条件不为 true 时执行的代码
} - 多分支if (条件语句1){
当条件 1 为 true 时执行的代码
}else if (条件语句2){
当条件 2 为 true 时执行的代码
}else{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
switch 语句
switch(表达式){
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时执行的代码
}
6、JavaScript基础语法(六):作用域(1)
- 代码块、区块
- 作用域
ES5:只有在函数内才能形成作用域
7、JavaScript基础语法(七):for循环
- 语法for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
// 语句 1 (代码块)开始前执行
// 语句 2 定义运行循环(代码块)的条件
// 语句 3 在循环(代码块)已被执行之后执行for/in 语句循环遍历对象的属性
var 对象名={属性名1:值1,属性名2:值2,属性名3:值3};
for (a in 对象名)
{
console.log(a);
console.log(对象名.a) // 对象名[a]
}
8、JavaScript基础语法(八):while循环
语法:(不要出现死循环)
while (条件) {
要执行的代码块
}
do {
要执行的代码块
}while (条件);
9、JavaScript基础语法(九):跳出循环
break语句 :跳出循环
continue语句:跳过循环中的一个迭代
break 和 continue 语句是仅有的可“跳出”代码块的 JavaScript 语句
10、JavaScript基础语法(十):数组
什么是数组?
数组是一种特殊的变量,它能够一次存放一个以上的值。
语法:var arrayName = [item1, item2, ...];
var code = ["HTML", "CSS", "Javascript"];
var code = [
"HTML",
"CSS",
"Javascript"
];
创建数组变量:
1、var arr = [];
2、var arr = new Array(); // 不推荐
关于索引:从0开始,只能使用数字索引
如何知道数组的数据类型
1、Array.isArray(arr);
2、自己写一个函数
function isArray(x) {
return x.constructor.toString().indexOf("Array") > -1;
}
3、arr instanceof Array;
11、JavaScript基础语法(十一):函数
函数:可以重复调用的代码块
function functionName()
{
// 执行代码
}
// 如何调用
functionName()
// 有参数的函数
function functionName(a,b)
{
// 执行代码
}
// 有返回值的函数
function functionName()
{
// 执行代码
return ;
}
12、JavaScript基础语法(十二):作用域(2)
13、JavaScript基础语法(十三):对象
- 什么是对象(Object)对象就是一组名/值对 (name:value) 的集合,值可以是数据或者函数我们通常认为 JavaScript 对象是键值对的容器在 JavaScript 中,数组使用数字索引。在 JavaScript 中,对象使用命名索引。
- 对象里的属性作用和变量一样访问方式:对象名.属性名 / 对象名[属性名]
- 对象里的方法作用和函数一样访问方式:对象名.方法名() / 对象名[属性名]()
14、JavaScript基础语法(十四):面向对象编程
面向对象程序设计(Object Oriented Programming)
OOP
一种计算机编程架构
真实生活中的对象,属性和方法
在JavaScrip的世界里
一切皆对象
一切皆对象
一切皆对象
对象分类:本地对象、内置对象、宿主对象
JavaScrip内置对象:
String对象:字符串对象,提供了对字符串进行操作的属性和方法。
Array对象:数组对象,提供了数组操作方面的属性和方法。
Date对象:日期时间对象,可以获取系统的日期时间信息。
Boolean对象:布尔对象,一个布尔变量就是一个布尔对象。(没有可用的属性和方法)
Number对象:数值对象,一个数值变量就是一个数值对象。
Math对象:数学对象,提供了数学运算方面的属性和方法。
Object对象、RegExp对象、 Global对象、Function对象。
15、如何学习 JavaScript 内置对象
w3cschool:https://www.w3school.com.cn/
学会使用搜索引擎: js 空格 问题
学会使用:视频教程
16、JavaScript对象:String 对象(1)
String 对象用于处理文本(字符串)
需要注意的是,JavaScript 的字符串是不可变的,String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。
- 创建字符串两种方式:
var str = "javascript";
var str = new String("javascript")
注意:不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用
- 常用的String 对象的属性
length
str[索引]
17、JavaScript对象:String 对象(2)
常用的String 对象的方法(支持链式调用)
- toUpperCase() 把字符串转换为大写返回转换后字符串stringObject.toUpperCase()
- toLowerCase()把字符串转换为小写返回转换后字符串stringObject.toLowerCase()
- indexOf()返回某个指定的字符串值在字符串中首次出现的位置没有字符串出现的位置,如果没有返回-1stringObject.indexOf(searchvalue,fromindex)
searchvalue 【必需】规定需检索的字符串值。
fromindex 【可选】从哪里开始检索,写上索引 - substring()提取字符串中介于两个指定下标之间的字符返回提取的字符串stringObject.substring(start,stop)
start 【必需】开始索引
stop 【可选】结束索引 - match()在字符串内检索指定的值,或找到一个或多个正则表达式的匹配返回指定的值,与indexOf()类似stringObject.match(searchValue)
stringObject.match(regexp)
searchvalue 【必需】要检索的字符串
regexp 【必需】正则表达式 - search()检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串返回位置索引string.search(searchvalue)
searchvalue 【必需】要找的字符串或者正则表的是 - replace()在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串返回替换完成字符串stringObject.replace(regexp/substr,replacement)
regexp/substr 【必需】被替换的字符串或者正则表达式
replacement 【必须】要替换的字符串 - split()把一个字符串分割成字符串数组返回数组stringObject.split(separator,howMany)
separator 【必需】字符串或正则表达式
howMany 【可选】该参数可指定返回的数组的最大长度
18、JavaScript对象:String 对象(3)
学习地址:https://www.runoob.com/jsref/jsref-obj-string.html
charAt():返回在指定位置的字符。
charCodeAt():返回在指定的位置的字符的 Unicode 编码
fromCharCode():将 Unicode 编码转为字符
concat():连接两个或更多字符串,并返回新的字符串。
endsWith():判断当前字符串是否是以指定的子字符串结尾的(区分大小写)
startsWith():查看字符串是否以指定的子字符串开头
includes():查找字符串中是否包含指定的子字符串
lastIndexOf():从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置
repeat():复制字符串指定次数,并将它们连接在一起返回
replaceAll():在字符串中查找匹配的子串,并替换与正则表达式匹配的所有子字符串
slice():提取字符串的片断,并在新的字符串中返回被提取的部分
substring():提取字符串中两个指定的索引号之间的字符
trim():去除字符串两边的空白
valueOf():返回某个字符串对象的原始值
toString():返回一个字符串
19、JavaScript对象:Number 对象(1)
创建对象的方法
var num = new Number(value);
var num = Number(value);
var num = 数值;
常用的方法:
number.toString(radix)
返回字符串
radix:2至36之间的数;进制
number.valueOf()
返回对象的基本数字值
20、JavaScript对象:Number 对象(2)
学习平台:https://www.runoob.com/jsref/jsref-obj-number.html
21、JavaScript对象:Boolean 对象
创建 Boolean 对象
Boolean 对象代表两个值:”true” 或者 “false”
var bool=new Boolean();
如果布尔对象无初始值或者其值为:
- 0
- -0
- null
- “”
- false
- undefined
- NaN
那么对象的值为 false。
否则,其值为 true(即使当变量值为字符串 “false” 时)!
toString()
valueOf()
22、JavaScript对象:Array 对象(1)
创建 Array 对象
var arr = ["a","b","c"];
var arr = new Array("a","b","c");
获取 Array 对象成员数
length
23、JavaScript对象:Array 对象(2)
concat() 连接两个或更多的数组,并返回结果
copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中
toString() 把数组转换为字符串,并返回结果
valueOf() 返回数组对象的原始值
fill() 使用一个固定值来填充数组
reverse() 反转数组的元素顺序
sort() 对数组的元素进行排序。
24、JavaScript对象:Array 对象(3)
includes() 判断一个数组是否包含一个指定的值
indexOf() 搜索数组中的元素,并返回它所在的位置
lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置
isArray() 判断对象是否为数组
join() 把数组的所有元素放入一个字符串
25、JavaScript对象:Array 对象(4)
push() 向数组的末尾添加一个或更多元素,并返回新的长度
unshift() 向数组的开头添加一个或更多元素,并返回新的长度
pop() 删除数组的最后一个元素并返回删除的元素
shift() 删除并返回数组的第一个元素
splice() 从数组中添加或删除元素
slice() 选取数组的一部分,并返回一个新数组
26、JavaScript对象:Array 对象(5)
forEach() 数组每个元素都执行一次回调函数
some() 检测数组元素中是否有元素符合指定条件
every() 检测数值元素的每个元素是否都符合条件
filter() 检测数值元素,并返回符合条件所有元素的数组
map() 通过指定函数处理数组的每个元素,并返回处理后的数组
reduce() 将数组元素计算为一个值(从左到右)
reduceRight() 将数组元素计算为一个值(从右到左)
27、JavaScript对象:Date 对象(1)
date data
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
year 年 | month 月 | day 日 | hours 时 | minutes 分 | seconds 秒 | milliseconds 毫秒
创建Date对象
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
例子:
var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(79,5,24)
var d3 = new Date(79,5,24,11,33,0)
获取时间戳:
var timestamp = Date.parse(new Date());//不推荐使用,因为毫秒级别的数值被转化为000 ,不准确!
var timestamp = (new Date()).valueOf();//获取当前毫秒的时间戳,准确!
var timestamp = (new Date()).getTime();//返回数值单位是毫秒;
28、JavaScript对象:Date 对象(2)
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
getFullYear() 从 Date 对象以四位数字返回年份
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)
getTime() 返回 1970 年 1 月 1 日至今的毫秒数
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)
setFullYear() 设置 Date 对象中的年份(四位数字)
setHours() 设置 Date 对象中的小时 (0 ~ 23)
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)
setMonth() 设置 Date 对象中月份 (0 ~ 11)
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)
setTime() setTime() 方法以毫秒设置 Date 对象
toDateString() 把 Date 对象的日期部分转换为字符串
toTimeString() 把 Date 对象的时间部分转换为字符串
toJSON() 以 JSON 数据格式返回日期字符串
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串
toString() 把 Date 对象转换为字符串
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
valueOf() 返回 Date 对象的原始值。
============
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)
setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。
toISOString() 使用 ISO 标准返回字符串的日期格式
toUTCString() 根据世界时,把 Date 对象转换为字符串。
UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数
29、JavaScript对象:Date 对象(3)
//格式化日期
function dateFormat(thisDate, fmt) {
var o = {
"M+": thisDate.getMonth() + 1,
"d+": thisDate.getDate(),
"h+": thisDate.getHours(),
"m+": thisDate.getMinutes(),
"s+": thisDate.getSeconds(),
"q+": Math.floor((thisDate.getMonth() + 3) / 3),
"S": thisDate.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (thisDate.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
30、JavaScript对象:Math 对象(1)
Math(算数)对象的作用是:执行常见的算数任务。
Math对象无需在使用这个对象之前对它进行定义。
- Math对象属性
E 返回算术常量 e,即自然对数的底数(约等于2.718)
LN2 返回 2 的自然对数(约等于0.693)
LN10 返回 10 的自然对数(约等于2.302)
LOG2E 返回以 2 为底的 e 的对数(约等于 1.4426950408889634)
LOG10E 返回以 10 为底的 e 的对数(约等于0.434)
PI 返回圆周率(约等于3.14159)
SQRT1_2 返回 2 的平方根的倒数(约等于 0.707)
SQRT2 返回 2 的平方根(约等于 1.414)
31、JavaScript对象:Math 对象(2)
- Math对象方法
abs(x) 返回 x 的绝对值
acos(x) 返回 x 的反余弦值
asin(x) 返回 x 的反正弦值
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)
ceil(x) 对数进行上舍入
cos(x) 返回数的余弦
exp(x) 返回 Ex 的指数
floor(x) 对 x 进行下舍入
log(x) 返回数的自然对数(底为e)
max(x,y,z,…,n) 返回 x,y,z,…,n 中的最高值
min(x,y,z,…,n) 返回 x,y,z,…,n中的最低值
pow(x,y) 返回 x 的 y 次幂
random() 返回 0 ~ 1 之间的随机数
round(x) 四舍五入
sin(x) 返回数的正弦
sqrt(x) 返回数的平方根
tan(x) 返回角的正切
32、JavaScript对象:全局属性/函数(1)
Infinity 代表正的无穷大的数值
let x = 1.797693134862315E+308;
let y = x * 1.001;
NaN 指示某个值不是数字值
undefined 指示未定义的值
eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。
33、JavaScript对象:全局属性/函数(2)
decodeURI() 解码某个编码的 URI
encodeURI() 把字符串编码为 URI
decodeURIComponent() 解码一个编码的 URI 组件
encodeURIComponent() 把字符串编码为 URI 组件
区别:
encodeURIComponent
和decodeURIComponent
可以编码和解码URI
特殊字符(如#,/,¥
等),
而
decodeURI
则不能
isFinite() 检查某个值是否为有穷大的数
isNaN() 检查某个值是否是数字。
Number() 把对象的值转换为数字
String() 把对象的值转换为字符串。
34、JavaScript对象:RegExp 对象:正则表达式(1)
RegExp :Regular Expression
patt : pattern
创建正则表达式
var patt = new RegExp("正则表达式"); // 注意,参数是字符串
var patt = new RegExp("正则表达式", "匹配模式"); // 注意,两个参数都是字符串
var patt = /正则表达式/; // 注意,这个语法里没有引号
var patt = /正则表达式/匹配模式; // 注意,这个语法里没有引号
例子:
var reg = new RegExp("\\w+");
var reg = /\w+/;
35、JavaScript对象:RegExp 对象:正则表达式(2)
- 修饰符
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 执行多行匹配 只有当目标字符串含有\n,而且正则表达式中含有^或$的时候,/m修饰符才有作用
- 精准匹配
直接写要匹配的文本
- match
String.match(regexp)
36、JavaScript对象:RegExp 对象:正则表达式(3)
字符组
[abc] 查找方括号之间的任何字符
37、JavaScript对象:RegExp 对象:正则表达式(4)
[abcdefghijklmnopqr]
[a-r]
[0123456789]
[0-9]
[abcdefghijklmnopqr123456789]
[a-r1-9]
[ABCDEFGHIJKLMNOPQR]
[A-R] [A-z0-9]
[-az] [az-] [a\-z]
38、JavaScript对象:RegExp 对象:正则表达式(5)
更正
[a-Z0-9]
[A-z]
=====
[abcdeghijklnopqrstuvwxz]
[^fmy]
(hello)
39、JavaScript对象:RegExp 对象:正则表达式(6)
元字符
元字符(Metacharacter)是拥有特殊含义的字符
\d 查找数字 等同于 [0-9]
\D 查找非数字字符 等同于 [\^0-9]
\w 查找数字、字母及下划线 [0-9a-zA-Z_]
\W 查找非单词字符 0-9a-zA-Z_
\s 查找空白字符 [ \t\v\n\r\f]
\S 查找非空白字符 [\^ \t\v\n\r\f]
. 就是[^\n\r\u2028\u2029]
。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符除外
匹配任意字符 [^]
40、JavaScript对象:RegExp 对象:正则表达式(7)
量词(重复)
{m,n}
{m,} : 至少出现m次才进行匹配
{m,n} 至少出现m次,最多不能超过n次才进行匹配
{m,m} 、{m}出现m次就进行匹配
n+ 匹配任何包含至少一个 n 的字符串 n{1,}
n* 匹配任何包含零个或多个 n 的字符串 n{0,}
n? 匹配任何包含零个或一个 n 的字符串 n{0,1}