Skip to content

类型

HS 中定义了几种基本数据类型:

  • typeof 字符串值: VOID
  • 底层类: null

示例:

js
function test() {
  console.log("call")
}

// 此时 a 的值为 VOID
const a = test()

null

  • typeof 字符串值: NULL
  • 底层类: null

示例:

js
const a = null

数字

  • typeof 字符串值: NUMBER
  • 底层类: BigDecimal

示例:

js
const a = 1

字符串

  • typeof 字符串值: STRING
  • 底层类: String

示例:

js
const a = "A"
const b = 'B'

布尔值

  • typeof 字符串值: BOOLEAN
  • 底层类: boolean

示例:

js
const a = true

对象

  • typeof 字符串值: SCRIPT_OBJECT
  • 底层类: ConcurrentHashMap<String, Reference>

示例:

js
const a = {
  b: 1,
}

函数

  • typeof 字符串值: FUNCTION
  • 底层类: Function

示例:

js
const a = () => "function"

数组

  • typeof 字符串值: ARRAY
  • 底层类: Reference[]

示例:

js
const a = [1, [2, 3]]

Java 类

  • typeof 字符串值: JAVA_CLASS
  • 底层类: Class<?>

示例:

js
import "java.lang.String"
const a = String

Java 方法

  • typeof 字符串值: JAVA_METHOD_HANDLES
  • 底层类: MethodHandle[]

示例:

js
const methods = "str".split

Java 对象

  • typeof 字符串值: JAVA_OBJECT
  • 底层类: Object

示例: 除了 VOID 和 NULL 外任何一个数据类型本质上都是 Java 对象

你可以用 typeof 运算符获取任何一个值的内部类型,此运算符的返回值是字符串,一个例子如下:

js
const a = 5
console.log(typeof a)
console.log(typeof a == "NUMBER")

以上代码输出:

js
NUMBER
true