文章目录
三、检测数据类型
四、数据类型转换
- 1.转化为布尔类型
- 2.隐式转换
五、正则表达式语法(了解)
- 1.什么是正则表达式
- 2.正则表达式的作用
- 3.如何使用正则表达式
- 4.正则表达式特点
- 5.学习目标
- 6.正则在项目中的实际使用
- 7.元字符与原义符
- 8.字符类
- 9.反向类(负向类): ^
- 10.范围类
六、操作符
- 1.等于操作符
- 2.全等操作符
前言
JavaScript定义了基本数据类型和复杂数据类型,可以使用typeof关键字来判断一个变量的类型。
一、数据类型
1.为什么需要有数据类型?
每一种编程语言都有自己的语法规则,在处理数据的时候,也会有自己的规则,不是任何数据都可以处理的。
2.什么是数据类型?
JS编译器在解析代码的时候,会产生各种不同的数据。 而不同的数据'运算'与'存储'方式都不同, 计算机需要对这些数据进行分类,称之为数据类型。
3.数据类型分类(暂不详解)
二、栈类型与堆类型
- 在js中基本类型在内存中占据空间小、大小固定,他们的值保存在栈(stack)空间。
- 引用类型占据空间大,大小不固定,栈内存中存放地址指向堆(heap)内存中的对象。
三.typeof-检查数据类型
语法: typeof 数据
四、数据类型转换
1.转化为布尔类型
语法:Boolean(数据)
(1)有7种数据结果会得到false:
- 0
- -0
- NaN
- ' '
- undefind
- null
- false
(2)除flase 7种之外的一切数据结果为true
2. 隐式转换
当运算符两边的 ’数据类型不一致‘ 的时候,编译器会转成一致后运算:
(1)转换数字: 算术运算符 + - * / %
(2)转换字符串: 连接符+ (+号两边只要有一边是字符串,此时+就是连接符)
(3)转换布尔: 逻辑非 !
五、正则表达式语法(了解)
1.什么是正则表达式
-
正则表达式是一个用于对字符串实现逻辑匹配运算的对象
a.正则是内置对象 : 存储一些属性和方法
b.表达式:对字符串 进行逻辑匹配 运算
- 正则表达式:RegExp(regular expression)是ECMAScript内置对象
2.正则表达式的作用
-
按照某种规则来匹配字符串,而正则表达式就是制定这个规则
-
对 字符串进行逻辑匹配 运算
3.如何使用正则表达式
-
(1)创建正则表达式对象
-
(2)开始匹配使用test()方法
4.正则表达式特点
-
对初学者极度的不友好
-
非常的晦涩难懂
5.学习目标
-
1.可以使用正则表达式验证常用表单文本(手机、邮箱、qq、座机、姓名)
-
2.了解正则表达式在开发中的一些应用场景
6.正则在项目中的实际使用
- 在手机号的校验规则中添加一个自定义校验
-
正则表达式使用流程 :
-
(1)调用构造函数,创建正则对象:newRegExp(/正则表达式/);
-
(2)调用test方法,对字符串进行运算----> true:符合规则 false:不符合
7.元字符与原义符
一个正则表达式主要由两部分组成
(1)原义文本字符 : 就是字符本身的含义,千万别想多了
(2)元字符: 改变了字符串本身的含义 (相当于js的关键字):
. \ | [] {} () + ? * $ ^
例如:
/abc/: 含义,就是检查字符串中有没有abc。 别想多了,不是说有a或者有b或者有c,也不是说有a和b和c。
8.字符类
(1)一般情况下,正则表达式的一个字符就是对于字符串的一个字符,这样处理比较方便
例如: /abc/ : 含义就是匹配字符串'abc’
(2)有时候我们并不想只匹配一个字符,而是想要匹配符合某一类特征的字符,这时就可以使用字符类
(3)创建简单字符类:: []
-
这里类指的是符合某些特征的对象,只是一个泛指,而不是指某个字符
-
例如正则表达式: /[abc]/:把字符a或b或c归为一类,可以匹配这类的字符
-
/[abc1/ :含义是,匹配字符串中只要有 a或者b或者c任何一个即可
9.反向类(负向类): ^
-
反向类意思是不属于某类的内容
-
例如正则表达式:[^abc] :含意是,不是字符a或b或c的内容
-
只要有任何一个字符不是a或者b或者c,就满足条件
10.范围类
(1)需求:使用字符类匹配数字
(2)正则表达式:[0123456789] :含义是,有任何数字的内容:
弊端:表达式冗余,假如我要匹配字母,那就要写 [abcdefg...........xyz],非常麻烦(3)如何解决冗余问题?
使用范围类
(4)范围类:
例如:
-
[0-9] 含义是, 0-9之间的任意字符
-
[a-z]:含义是,a-z之间的任意字符
-
[A-Z]:含义是,A-Z之间的任意字符
注意点:
范围类是一个闭区间, [a-z],这个范围包含字符a和z本身
在[]内部是可以连写的,[0-9a-zA-Z] :含义是,包含数字0-9,或者a-z,或者A-Z任意
右边一定要大于左边,例如「5-8],这是合法的表示5-8之间的数字,不能写[8-5]
六、操作符
1.等于操作符
(1)等于操作符用两个等于号(==)表示,如果操作数相等,则会返回 true
(2)前面文章,我们提到在JavaScript中存在隐式转换。等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等
(3)遵循以下规则:
-
如果任一操作数是布尔值,则将其转换为数值再比较是否相等
-
如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等