Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
G8866
unidocs-zh
提交
fb375afc
unidocs-zh
项目概览
G8866
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fb375afc
编写于
8月 29, 2023
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update operator.md
上级
b1fb947a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
30 deletion
+55
-30
docs/uts/operator.md
docs/uts/operator.md
+55
-30
未找到文件。
docs/uts/operator.md
浏览文件 @
fb375afc
...
...
@@ -344,9 +344,19 @@ a as string // 异常
使用
`instanceof`
运算符执行运行时检查,以标识对象是否符合给定类型。
| 类型 | 结果 |
| ------------------------------------------------------------------------------------ | ---------------- |
| Boolean | 编译报错,不支持 |
| Number | 编译报错,不支持 |
| String | 编译报错,不支持 |
| 平台专有数字类型: Int, Float, Double, Long ... | true or false |
| typeof 结果为 "object" 的类型(包含但不限于:Date, Array, Map, UTSJSONObject, 自定义类型) | true or false |
对于 Boolean, Number, String 类型的实例判断,请使用
`typeof`
.
```
ts
function
fn
(
obj
:
any
)
{
if
(
obj
instanceof
String
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
...
...
@@ -365,8 +375,8 @@ function fn(obj: any) {
已经可以明确判断类型兼容性时无需使用
`instanceof`
在运行时进行判断,编译阶段会检查出这种情况会报错或者警告:
```
ts
function
fn
(
obj
:
string
)
{
if
(
obj
instanceof
String
)
{
function
fn
(
obj
:
Date
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
...
...
@@ -376,17 +386,11 @@ function fn(obj: string) {
```
ts
let
a
=
10.0
let
b
:
Double
=
3.14
let
c
:
any
=
a
let
d
:
any
=
b
let
e
:
Int
=
2
let
a
:
Double
=
3.14
let
b
:
Int
=
2
a
instanceof
number
// true
b
instanceof
Double
//true
c
instanceof
number
//true //kottlin 结果为 false
d
instanceof
Double
// true
e
instanceof
Int
//true
a
instanceof
Double
//true
b
instanceof
Int
//true
```
...
...
@@ -394,31 +398,31 @@ e instanceof Int //true
## 实例类型获取
使用
`typeof`
运算符获取操作数的类型,返回一个表示类型的字符串, 默认值是 "object"。
使用
`typeof`
运算符获取操作数的类型,返回一个表示类型的字符串。
| 类型 | 结果 |
| ------------------------------------------------------ | ---------------- |
| null | "object" |
| boolean | "boolean" |
| number | "number" |
| string | "string" |
| function | "function" |
| 平台专有数字类型: Int, Float, Double, Long ... | "Int","Float","Double","Long" ... |
| 其他任何对象(包含但不限于:Date, Array, Map, UTSJSONObject) | "object" |
对于数字类型,除了 number 之外,typeof 还能返回 Int Float Double Int64 Long ... 等所有平台特有数字类型。
基本用法
:
用法示例
:
```
ts
// number
let
a
=
10.0
let
b
:
Double
=
3.14
let
c
:
any
=
a
let
d
:
any
=
b
let
e
:
Int
=
2
let
c
:
Int
=
2
typeof
a
==
"
number
"
//true
typeof
b
==
"
Double
"
//true
typeof
d
==
"
Double
"
//true
typeof
e
==
"
Int
"
//true
// 在 Swift 中
typeof
c
==
"
number
"
//true
// 但是在 Kottlin 中, typeof c 结果是 Double
typeof
c
==
"
Double
"
typeof
c
==
"
Int
"
//true
// string
let
str
=
"
hello uts
"
...
...
@@ -446,9 +450,30 @@ let obj = {
typeof
obj
==
"
object
"
// true
// 除了上述类型外,typeof 默认返回的是 "object"
typeof
null
==
"
object
"
//true
typeof
[
1
,
2
,
3
]
==
"
object
"
//true
```
\ No newline at end of file
```
使用 typeof 获取 any 实例的类型时,在安卓平台上存在一些特殊情况:
```
ts
// number
let
a
=
10.0
let
b
:
Double
=
3.14
let
c
:
any
=
a
let
d
:
any
=
b
typeof
a
==
"
number
"
//true
typeof
b
==
"
Double
"
//true
typeof
d
==
"
Double
"
//true
// 在 iOS 平台上
typeof
c
==
"
number
"
//true
// 在安卓平台上期望返回 "number" 但真实返回的是 "Double"
typeof
c
==
"
number
"
//false 真实返回的是 "Double"
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录