js数据类型和运算符

js数据类型和运算符
最新回答
晨曦慕雪

2023-07-20 03:28:09

JS数据类型和运算符一、JS数据类型

JS中的数据类型主要分为简单类型和复杂类型两大类,其中简单类型包括:undefined、null、number、string、boolean、symbol,复杂类型主要是object。以下是每种数据类型的详细介绍:

  1. number(数字)

    存储形式:采用64位浮点数的形式存储。

    写法:整数(如1)、小数(如0.1)、科学计数法(如123e4)、八进制(如0123、0o123)、十六进制(如0x3F)、二进制(如0b11)。

    特殊值

    正0和负0:都等于0。

    无穷大:Infinity(正无穷大)和-Infinity(负无穷大)。

    无法表示的数字:NaN(Not-a-Number)。

  2. string(字符串)

    存储形式:采用类似UTF-8的形式存储(具体为UCS-2或UTF-16,根据实现可能有所不同),每个字符通常占用两个字节(对于基本多语言平面内的字符)。

    写法:可以使用单引号('你好')、双引号("你好")或反引号(```你好```,即模板字符串)来定义。

    特殊字符:使用进行转义,如n表示换行,t表示制表符,uFFFF表示对应的Unicode字符等。

    属性:字符串是对象(String对象)的原始值表示,具有length属性表示字符串的长度,可以通过下标(从0开始)访问字符串中的字符。

  3. boolean(布尔值)

    取值:只有两个值,true(真)和false(假)。

    运算:常用逻辑运算符包括!(非)、&&(与)、||(或)等。

  4. symbol(符号)

    特点:是ES6新增的一种原始数据类型,表示独一无二的值。通常用于创建对象的唯一属性键。

  5. undefined和null

    undefined:如果一个变量声明了但没有赋值,则默认值为undefined。

    null:表示一个空值或不存在的值,通常用于手动释放对象的引用。

  6. object(对象)

    特点:是JS中最复杂的数据类型,可以包含多个键值对,键是字符串或symbol,值可以是任意数据类型。

    常见对象:数组(Array)、函数(Function)、日期(Date)等,虽然它们有各自的特点和用法,但在JS中它们都属于object类型。

二、运算符

运算符用于对变量和值进行各种运算,JS中的运算符主要包括以下几类:

  1. 算术运算符

    加法:+,用于数字相加或字符串拼接。

    减法:-,用于数字相减。

    乘法:*,用于数字相乘。

    除法:/,用于数字相除。

    取余:%,用于计算两个数相除的余数。

    递增:++,使变量的值增加1。

    递减:--,使变量的值减少1。

  2. 赋值运算符

    简单赋值:=,将右侧的值赋给左侧的变量。

    复合赋值:如+=、-=、*=、/=等,将右侧的值与左侧变量的当前值进行相应运算后,再将结果赋给左侧变量。

  3. 比较运算符

    等于:==,比较两个值是否相等(会进行类型转换)。

    严格等于:===,比较两个值是否严格相等(不进行类型转换)。

    不等于:!=,比较两个值是否不相等(会进行类型转换)。

    严格不等于:!==,比较两个值是否严格不相等(不进行类型转换)。

    大于:>,比较左侧值是否大于右侧值。

    大于等于:>=,比较左侧值是否大于等于右侧值。

    小于:<,比较左侧值是否小于右侧值。

    小于等于:<=,比较左侧值是否小于等于右侧值。

  4. 逻辑运算符

    逻辑与:&&,当且仅当两个操作数都为真时,结果才为真。

    逻辑或:||,当且仅当两个操作数都为假时,结果才为假。

    逻辑非:!,将操作数的布尔值取反。

  5. 位运算符

    位与:&,对两个数的二进制表示进行与运算。

    位或:|,对两个数的二进制表示进行或运算。

    位异或:^,对两个数的二进制表示进行异或运算。

    位非:~,对一个数的二进制表示进行非运算。

    左移:<<,将一个数的二进制表示向左移动指定的位数。

    右移:>>,将一个数的二进制表示向右移动指定的位数(保留符号位)。

    无符号右移:>>>,将一个数的二进制表示向右移动指定的位数(不考虑符号位)。

  6. 其他运算符

    条件运算符:? :,也称为三元运算符,用于根据条件表达式的结果选择两个值中的一个。

    类型运算符:typeof,用于获取一个变量的数据类型。

    void运算符:void,用于计算一个表达式但不返回值(通常用于生成一个undefined值)。

    逗号运算符:,,用于顺序执行两个表达式并返回最后一个表达式的值。

三、类型转换

在JS中,不同类型的值之间可以进行类型转换,以满足不同的运算需求。类型转换主要包括以下几种情况:

  1. 数字转字符串

    使用String(n)函数或n + ''(字符串拼接)的方式将数字转换为字符串。

  2. 字符串转数字

    使用Number('字符串')函数、parseInt('字符串')函数(转换为整数)或parseFloat('字符串')函数(转换为浮点数)将字符串转换为数字。

    也可以使用'字符串' - 0的方式将字符串转换为数字(但这种方法依赖于字符串的内容,如果字符串无法转换为数字,则结果为NaN)。

  3. 任意类型转布尔

    使用Boolean(x)函数或!!x的方式将任意类型的值转换为布尔值。在JS中,有五个值被认为是“假值”(falsy values),它们分别是undefined、null、0、NaN和空字符串''。除了这五个值之外的所有值都被认为是“真值”(truthy values)。

  4. 任意类型转字符串

    使用String(x)函数或x.toString()方法(如果x是对象且定义了toString方法)将任意类型的值转换为字符串。

注意:在进行类型转换时,需要谨慎处理可能出现的异常情况,如使用parseInt或parseFloat转换字符串时,如果字符串中包含无法转换为数字的字符,则转换会提前终止并返回已转换的部分(或NaN)。