前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 数据类型与运算符(上)

JavaScript 数据类型与运算符(上)

作者头像
RiemannHypothesis
发布2022-10-05 08:06:29
3170
发布2022-10-05 08:06:29
举报
文章被收录于专栏:Elixir

一、数据类型

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。

数值(number):整数和小数(比如1和3.14) 字符串(string):文本(比如Hello World)。 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假) undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值 null:表示空值,即此处的值为空。 对象(object):各种值组成的集合。

通常,数值、字符串、布尔值这三种类型,合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。对象则称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。

对象是最复杂的数据类型,又可以分成三个子类型。

狭义的对象(object) 数组(array) 函数(function)

二、typeof运算符

JavaScript 有三种方法,可以确定一个值到底是什么类型。而我们现在需要接触到的就是typeof

数值、字符串、布尔值分别返回number、string、boolean。

代码语言:javascript
复制
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"

函数返回function

代码语言:javascript
复制
function f() {}
typeof f
// "function"

undefined返回undefined。

代码语言:javascript
复制
typeof undefined
// "undefined"

利用这一点,typeof可以用来检查一个没有声明的变量,而不报错。

代码语言:javascript
复制
v
// ReferenceError: v is not defined

typeof v
// "undefined"

对象返回object。

代码语言:javascript
复制
typeof window // "object"
typeof {} // "object"
typeof [] // "object"

null返回object。

代码语言:javascript
复制
typeof null // "object"

null 和 undefined 的区别 null与undefined都可以表示“没有”,含义非常相似。将一个变量赋值为undefined或null,老实说,语法效果几乎没区别。

三、加法运算符

加法运算符(+)是最常见的运算符,用来求两个数值的和。

代码语言:javascript
复制
var num1 = 10;
var num2 = 20;
num1 + num2; // 30

JavaScript 允许非数值的相加。

代码语言:javascript
复制
true + true // 2
1 + true // 2

上面代码中,第一行是两个布尔值相加,第二行是数值与布尔值相加。这两种情况,布尔值都会自动转成数值,然后再相加。

比较特殊的是,如果是两个字符串相加,这时加法运算符会变成连接运算符,返回一个新的字符串,将两个原字符串连接在一起。

代码语言:javascript
复制
'a' + 'bc' // "abc"

如果一个运算子是字符串,另一个运算子是非字符串,这时非字符串会转成字符串,再连接在一起。

代码语言:javascript
复制
1 + 'a' // "1a"
false + 'a' // "falsea"

加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心。

代码语言:javascript
复制
'3' + 4 + 5 // "345"
3 + 4 + '5' // "75"

除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算。

代码语言:javascript
复制
1 - '2' // -1
1 * '2' // 2
1 / '2' // 0.5

四、算术运算符

包括加法运算符在内,JavaScript 共提供10个算术运算符,用来完成基本的算术运算。

加法运算符:x + y 减法运算符: x - y 乘法运算符: x * y 除法运算符:x / y 指数运算符:x ** y 余数运算符:x % y 自增运算符:++x 或者 x++ 自减运算符:--x 或者 x-- 数值运算符: +x 负数值运算符:-x 减法、乘法、除法运算法比较单纯,就是执行相应的数学运算。

余数运算符

代码语言:javascript
复制
12 % 5 // 2

需要注意的是,运算结果的正负号由第一个运算子的正负号决定。

代码语言:javascript
复制
-1 % 2 // -1
1 % -2 // 1

自增和自减运算符

自增和自减运算符,是一元运算符,只需要一个运算子。它们的作用是将运算子首先转为数值,然后加上1或者减去1。它们会修改原始变量。

代码语言:javascript
复制
var x = 1;
++x // 2
x // 2

--x // 1
x // 1

自增和自减运算符有一个需要注意的地方,就是放在变量之后,会先返回变量操作前的值,再进行自增/自减操作;放在变量之前,会先进行自增/自减操作,再返回变量操作后的值。

代码语言:javascript
复制
var x = 1;
var y = 1;

x++ // 1
++y // 2

上面代码中,x是先返回当前值,然后自增,所以得到1;y是先自增,然后返回新的值,所以得到2。

指数运算符(**)

指数运算符(**)完成指数运算,前一个运算子是底数,后一个运算子是指数。

代码语言:javascript
复制
2 ** 4 // 16
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据类型
  • 二、typeof运算符
  • 三、加法运算符
  • 四、算术运算符
    • 余数运算符
      • 自增和自减运算符
        • 指数运算符(**)
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档