WEB前端-JavaScript学习(四)

本文最后更新于:May 13, 2023 pm

JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。所有现代的 HTML 页面都使用 JavaScript,可以用于改进设计、验证表单、检测浏览器、创建cookies等。

目录

1.JavaScript 运算符

JavaScript中的三种类型的运算符:算术运算符、赋值运算符以及字符串连接运算符。

运算符 = 用于赋值。
运算符 + 用于加值。

实例:

1
2
3
y=5;
z=2;
x=y+z;

1.2 JavaScript 算术运算符

算术运算符用于执行变量与/或值之间的算术运算。

运算符 描述
+ 加法
- 减法
* 乘法
/ 除法
% 取模(余数)
++ 自增
自减

1.3 JavaScript 赋值运算符

运算符 等同于
x=x
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

1.4 用于字符串的 + 运算符

  • 运算符用于把文本值或字符串变量加起来(连接起来)。
    使用实例:把两个或多个字符串变量连接起来
    1
    2
    3
    txt1="What a very";
    txt2="nice day";
    txt3=txt1+txt2;

    1.5 对字符串和数字进行加法运算

    两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串。
    实例:
    1
    2
    3
    4
    5
    6
    7
    x=5+5;
    y="5"+5;
    z="Hello"+5;
    /*输出结果*/
    10
    55
    Hello5

    1.6 JavaScript运算符学习脑图

2.JavaScript 比较和逻辑运算符

比较和逻辑运算符用于测试 true 或者 false。

2.1 比较运算符

比较运算符在逻辑语句中使用,以测定变量或值是否相等。(x=5)

运算符 描述 比较 返回值
== 等于 x==8 false
=== 绝对等于(值和类型均相等) x===”5” false
!= 不等于 x!=8 true
!== 不绝对等于(值和类型有一个不相等,或两个都不相等) x!==”5” true
> 大于 x>8 false
< 小于 x<8 true
>= 大于或等于 x>=8 false
<= 小于或等于 x<=8 true

2.2 逻辑运算符

逻辑运算符用于测定变量或值之间的逻辑。给定 x=6 以及 y=3。

运算符 描述 实例
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true

逻辑运算符的优先级是:!、&& 、||。

2.3 条件运算符

JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
语法:

1
variablename=(condition)?value1:value2

使用实例:如果变量 age 中的值小于 18,则向变量 voteable 赋值 “年龄太小”,否则赋值 “年龄已达到”。

1
voteable=(age<18)?"年龄太小":"年龄已达到";

3.JavaScript 流程语句

同其他编程语言中的使用方法一样,这里不再记录。

3.1 if…else 语句

3.2 三目运算(三元运算) 语句

3.3 switch

3.4 for

3.5 for/in - 循环遍历对象的属性

for in循环不仅可以遍历对象的属性,还可以遍历数组。
使用实例:

1
2
3
4
5
var person={fname:"John",lname:"Doe",age:25};

for (x in person){
txt=txt + person[x];
}

3.6 while

3.7 do/while

3.8 Break 和 Continue

4.JavaScript 类型转换

JavaScript有 5 种不同的数据类型:string、number、boolean、object、function;
3 种对象类型:Object、Date、Array;
2 个不包含任何值的数据类型:null、undefined。

类型转换分为:Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。

JavaScript 变量可以转换为新变量或其他数据类型:通过使用 JavaScript 函数、通过 JavaScript 自身自动转换。

4.1 typeof 操作符

可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。
实例:

1
2
3
4
5
6
7
8
9
10
typeof "John"                 // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [ 1,2,3,4] // 返回 object
typeof {name: 'John', age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (if myCar is not declared)
typeof null // 返回 object

NaN 的数据类型是 number;数组(Array)的数据类型是 object;日期(Date)的数据类型为 object;null 的数据类型是 object;未定义变量的数据类型为 undefined;如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object。

4.2 constructor 属性

constructor 属性返回所有 JavaScript 变量的构造函数。
实例:

1
2
3
4
5
6
7
"John".constructor                 // 返回函数 String()  { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2, 3,4].constructor // 返回函数 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函数 Object() { [native code] }
new Date().constructor // 返回函数 Date() { [native code] }
function() {}.constructor // 返回函数 Function(){ [native code] }

可以使用 constructor 属性来查看对象是否为数组 (包含字符串 “Array”)。
实例:

1
2
3
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}

可以使用 constructor 属性来查看是对象是否为日期 (包含字符串 “Date”)。
实例:

1
2
3
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}

4.3 数字转换为字符串

全局方法 String() 可以将数字转换为字符串。该方法可用于任何类型的数字,字母,变量,表达式。
实例:

1
2
3
String(x)         // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String( 100+ 23) // 将数字表达式转换为字符串并返回

Number 方法 toString() 也有同样的效果。
实例:

1
2
3
x.toString()
(123).toString()
(100 + 23).toString()

其他Number方法

方法 描述
toExponential() 把对象的值转换为指数计数法。
toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。
toPrecision() 把数字格式化为指定的长度。

4.4 布尔值转换为字符串

全局方法 String() 可以将布尔值转换为字符串。
实例:

1
2
String(false)        // 返回 "false"
String(true) // 返回 "true"

Boolean 方法 toString() 也有相同的效果。
实例:

1
2
false.toString()     // 返回 "false"
true.toString() // 返回 "true"

4.5 日期转换为字符串

全局方法 String() 可以将日期转换为字符串。
实例:

1
String(Date())      // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

Date 方法 toString() 也有相同的效果。
实例:

1
Date().toString()   // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

其他查看关于日期转换为字符串的函数

方法 描述
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 日至今的毫秒数。

4.6 字符串转换为数字

全局方法 Number() 可以将字符串转换为数字。
实例:

1
2
3
4
Number("3.14")    // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN

更多关于字符串转为数字的方法:

方法 描述
parseFloat() 解析一个字符串,并返回一个浮点数。
parseInt() 解析一个字符串,并返回一个整数。

4.7 一元运算符 +

Operator + 可用于将变量转换为数字。
实例:

1
2
var y = "5";      // y 是一个字符串
var x = + y; // x 是一个数字

如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字)。
实例:

1
2
var y = "John";   // y 是一个字符串
var x = + y; // x 是一个数字 (NaN)

4.8 布尔值转换为数字

全局方法 Number() 可将布尔值转换为数字。
实例:

1
2
Number(false)     // 返回 0
Number(true) // 返回 1

4.9 日期转换为数字

全局方法 Number() 可将日期转换为数字。
实例:

1
2
d = new Date();
Number(d) // 返回 1404568027739

日期方法 getTime() 也有相同的效果。
实例:

1
2
d = new Date();
d.getTime() // 返回 1404568027739

4.10 自动转换类型

当 JavaScript 尝试操作一个 “错误” 的数据类型时,会自动转换为 “正确” 的数据类型。
实例:

1
2
3
4
5 + null    // 返回 5         because null is converted to 0
"5" + null // 返回"5null" because null is converted to "null"
"5" + 1 // 返回 "51" because 1 is converted to "1"
"5" - 1 // 返回 4 because "5" is converted to 5

4.11 自动转换为字符串

尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法。
实例:

1
2
3
4
5
document.getElementById("demo").innerHTML = myVar;

// if myVar = {name:"Fjohn"} // toString 转换为 "[object Object]"
// if myVar = [1,2,3,4] // toString 转换为 "1,2,3,4"
// if myVar = new Date() // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"

数字和布尔值也经常相互转换:
实例:

1
2
3
// if myVar = 123             // toString 转换为 "123"
// if myVar = true // toString 转换为 "true"
// if myVar = false // toString 转换为 "false"

4.12 null

在 JavaScript 中 null 表示 “什么都没有”,是一个只有一个值的特殊类型,表示一个空对象引用。当设置为“null”时,可以用来清空对象。
实例:

1
var person = null; // 值为 null(空), 但类型为对象

可以使用 typeof 检测 null 返回是object。

4.13 undefined

在 JavaScript 中 undefined 是一个没有设置值的变量。如果一个变量没有设置值的话,就会返回 undefined。
实例:

1
var person; // 值为 undefined(空), 类型是undefined

5.JavaScript 正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式。可用于所有文本搜索和文本替换的操作。

语法:

1
/pattern/modifiers;

实例:

1
var patt = /tothefor/i

/tothefor/i 是一个正则表达式。tothefor 是一个模式 (用于检索)。i 是一个修饰符 (搜索不区分大小写)。

5.1 使用字符串方法

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子字符串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子字符串。

5.1.1 search() 方法使用正则表达式

使用实例:使用正则表达式搜索 “tothefor” 字符串,且不区分大小写:

1
2
3
4
var str = "Visit tothefor";
var n = str.search(/tothefor/i);
/*输出结果*/
6

5.1.2 search() 方法使用字符串

search 方法可使用字符串作为参数。字符串参数会转换为正则表达式。
使用实例:检索字符串中 “tothefor” 的子字符串:

1
2
var str = "Visit tothefor!";
var n = str.search("tothefor");

5.1.3 replace() 方法使用正则表达式

使用实例:使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 tothefor :

1
2
3
4
var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "tothefor");
/*输出结果*/
Visit tothefor!

5.1.4 replace() 方法使用字符串

replace() 方法将接收字符串作为参数。
实例:

1
2
var str = "Visit Microsoft!";
var res = str.replace("Microsoft", "tothefor");

正则表达式参数可用在以上方法中 (替代字符串参数)。正则表达式使得搜索功能更加强大(如实例中不区分大小写)。

5.2 正则表达式修饰符

修饰符 可以在全局搜索中不区分大小写。

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

5.3 正则表达式模式

  1. 方括号用于查找某个范围内的字符。
表达式 描述
[abc] 查找方括号之间的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
(x|y) 查找任何以 | 分隔的选项。
  1. 元字符是拥有特殊含义的字符。
元字符 描述
\d 查找数字。
\s 查找空白字符。
\b 匹配单词边界。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
  1. 量词。
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。

5.4 使用 RegExp 对象

在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。

5.4.1 使用 test()

test() 方法是一个正则表达式方法。test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

使用实例:搜索字符串中的字符 “e”

1
2
3
4
var patt = /e/;
patt.test("The best things in life are free!");
/*输出结果*/
true

5.4.2 使用 exec()

exec() 方法是一个正则表达式方法。exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

使用实例:搜索字符串中的字母 “e”

1
2
3
/e/.exec("The best things in life are free!");
/*输出结果*/
e

5.4.3 使用 compile()

compile() 方法用于改变 RegExp。compile() 既可以改变检索模式,也可以添加或删除第二个参数。

使用实例:

1
2
3
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free"));
/*输出结果*/
truefalse /*因为字符串中存在 "e",而没有 "d"*/

5.5 JavaScript 正则表达式学习导图



本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/2194880248.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!