数据类型概述:
数据类型 | 特点 | 应用场景 |
---|
字符串(String) | 文本字符序列,使用单引号或双引号包裹 | 存储或操作文本数据,如用户名、密码、URL等 |
数字(Number) | 数值类型,可以是整数、浮点数等 | 存储或操作数值型数据,如商品价格、数量、评分等 |
布尔值(Boolean) | 只能表示真假值,true和false | 存储逻辑性数据,如是否登录、是否处理完成等 |
undefined | 未定义,变量声明但未赋值 | 作为初始值或默认值 |
null | 空值 | 作为变量值的特殊情况,如未找到数据等 |
数组(Array) | 有序的数据集合,每个数据项都有对应的下标 | 存储一组有序的数据,如商品列表、文章列表等 |
对象(Object) | 由键值对组成的数据结构,无序 | 存储一组键值对数据,如用户信息、商品信息等 |
函数(Function) | 可执行的代码块,可以被调用 | 封装可重用的功能代码,实现模块化编程 |
申请空间:
关键字 | 描述 |
---|
var | 用于存储数据,向计算机申请空间,但是会固定从根申明 |
let | 用于存储数据,向计算机申请空间,变量,可重复声明 |
const | 用于存储数据,向计算机申请空间,常量,不可重复声明 |
字符串:
增加操作
方法 | 描述 |
---|
concat() | 连接两个或多个字符串 |
slice() | 提取字符串的某个部分,并作为新字符串返回 |
删除操作
方法 | 描述 |
---|
replace() | 替换指定的字符或正则表达式的匹配项 |
trim() | 去掉字符串两端的空格 |
修改操作
方法 | 描述 |
---|
toLocaleLowerCase() | 转换字符串为本地小写 |
toLocaleUpperCase() | 转换字符串为本地大写 |
toLowerCase() | 把字符串转换为小写 |
toUpperCase() | 把字符串转换为大写 |
查询操作
方法 | 描述 |
---|
charAt() | 返回指定位置的字符 |
charCodeAt() | 返回指定位置的字符的 Unicode 值 |
indexOf() | 返回字符串中指定文本的第一个出现的位置 |
lastIndexOf() | 返回字符串中指定文本的最后一个出现的位置 |
match() | 找到一个或多个正则表达式的匹配 |
search() | 检索字符串中指定的子字符串,或正则表达式的匹配项 |
substr() | 从指定的位置开始,返回指定长度的子字符串 |
substring() | 提取字符串中两个指定的索引号之间的字符 |
常用的数字取整方法:
方法 | 描述 |
---|
Math.ceil() | 向上取整,将小数部分向上舍入为整数 |
Math.floor() | 向下取整,将小数部分向下舍入为整数 |
Math.round() | 四舍五入,根据小数部分的大小来决定舍入到哪个整数 |
parseInt() | 将数字转换为整数,舍弃小数部分 |
parseFloat() | 将数字转换为浮点数,可以保留小数部分 |
需要注意的是,在使用取整方法时,可能会遇到浮点数精度丢失的情况,因此在实际开发中,需要注意精度问题,可以使用toFixed()方法来指定保留小数的位数。例如(3.145).toFixed(2)的结果为3.14。
布尔值:
True or False(真或假)
对象:
属性增删改查的实例:
操作 | 例子 |
---|
添加属性 | person.age = 25; person[‘name’] = ‘John’; |
删除属性 | delete person.age; |
修改属性 | person.age = 30; |
查询属性 | console.log(person.name); |
方法增删改查的实例:
操作 | 例子 |
---|
添加方法 | person.sayHello = function() {console.log(‘Hello!’);}; |
删除方法 | delete person.sayHello; |
修改方法 | person.sayHello = function() {console.log(‘Hi!’);}; |
调用方法 | person.sayHello(); |
函数:
操作 | 例子 |
---|
增加 | function add(x, y) { return x + y; } |
删除 | delete add; |
修改 | add = function(x, y) { return x * y; }; |
查询 | console.log(add(3, 4)); |
当我们在JavaScript中进行数据类型检测时,可以使用以下方法:
万能数据类型检测:
Object.prototype.toString.call()是一种通用的检测数据类型的方式。可以通过这种方式获取一个变量的准确类型。
Object.prototype.toString.call()是通过调用对象的原型方法toString来检测数据类型。具体使用方式是将要检测的变量作为call()函数调用的上下文对象,也就是调用它的对象。
例如,Object.prototype.toString.call(“hello”)将返回一个表示字符串类型的字符串"[object String]"。
下面是一个例子,展示了如何使用Object.prototype.toString.call()来检测不同数据类型:
console.log(Object.prototype.toString.call("hello"));
console.log(Object.prototype.toString.call(123));
console.log(Object.prototype.toString.call(true));
console.log(Object.prototype.toString.call([]));
console.log(Object.prototype.toString.call({}));
console.log(Object.prototype.toString.call(null));
console.log(Object.prototype.toString.call(undefined));
通过这种方式,我们可以准确地检测出不同的数据类型,包括字符串、数字、布尔值、数组、对象、null和undefined等。
需要注意的是,Object.prototype.toString.call()方法对于自定义的对象可能会返回"[object Object]",因为它本质上是获取对象的原型的字符串表示。如果想要准确判断自定义对象的类型,可以通过其他方式,例如typeof操作符或者instanceof关键字。
-
typeof
操作符:
-
typeof undefined
返回 “undefined”
-
typeof null
返回 “object”
-
typeof true
返回 “boolean”
-
typeof 123
返回 “number”
-
typeof "Hello"
返回 “string”
-
typeof {}
返回 “object”
-
typeof []
返回 “object”
-
typeof function() {}
返回 “function”
-
typeof new Date()
返回 “object”
需要注意的是,typeof
对于函数和普通对象都返回 “object”,无法区分它们。如果需要更准确地检测数据类型,可以使用 instanceof
操作符或其他更具体的类型检测方法。
instanceof操作符是JavaScript中用于判断一个对象是否是某个特定类(构造函数)的实例的方法。它的语法如下:
object instanceof constructor
-
其他数据类型检测方法:
Array.isArray()
:用于检测一个值是否为数组类型。Number.isNaN()
:用于检测一个值是否为 NaN(非数字)。Number.isFinite()
:用于检测一个值是否为有限数。Object.prototype.toString.call()
:返回一个表示值的具体类型的字符串,用于更准确地检测对象类型。