轻语言网站:变量与数组与对象的定义

文档概述

轻语言网站开发框架采用 JavaScript 作为底层语言,采用中文关键字,以下为轻语言网站开发中的变量、数组、函数、对象的语句定义与使用。

学习目标

阅读本文档后,你应当能够掌握以下内容:

  • 变量定义语法:变量 名称 = 初始值变量 名称 为 类型
  • 局部变量与页面变量的差异及类型要求
  • 函数定义语法:无需声明返回类型与参数类型
  • 数组定义与操作:[]、索引访问、增删成员
  • 对象定义与操作:{}、点取属性、遍历属性
  • 拉姆达表达式的语法与限制(必须用 {} 包裹)

涉及关键字与函数

变量与类型关键字:

关键字用途示例
变量声明变量变量 X = 0
指定变量类型(用于组件/类)变量 按钮1 为 按钮
/ 逻辑值变量 是否登录 = 假
空值变量 数据 = 空

数组函数:

函数作用示例
取数组成员数(数组)获取数组成员数取数组成员数(数组3)
删除成员(数组,索引)删除指定索引成员删除成员(数组3,0)
添加成员(数组,值)追加成员添加成员(列表,4)

对象函数:

函数作用示例
取对象成员数(对象)获取对象属性数取对象成员数(用户1)
取对象成员名(对象,索引)获取指定索引的属性名取对象成员名(用户1,0)
删除对象属性(对象,属性名)删除属性删除对象属性(用户1,"名称")

变量

在网页开发中,定义局部变量时可以指定数据类型,也可以不指定类型,只需要定义变量名称,或在定义时设置变量的初始值即可,但在定义页面变量时,如果是组件或类必须指定变量类型。

代码示例:

' 定义字符串文本变量
变量 页面变量 = "变量定义测试"

' 定义整数变量
变量 X,Y = 0

' 如果是组件或类,必须显示指定变量类型
变量 页面变量_按钮1 为 按钮

事件 页面加载完毕()
    页面变量_按钮1 = 创建 按钮()
    标签1.文本 = "欢迎使用 VcnStudio 网站开发插件!"
结束 事件

事件 按钮1.被单击(源对象,事件源)
    ' 局部变量无需指定变量类型
    变量 局_数据 = 10
    变量 局_已登录 = 假
    变量 局_URL = "http://www.vcnstudio.com"
    调试输出(局_数据)
    调试输出(局_URL)
结束 事件

变量定义要点

  • 局部变量:定义时可省略类型,直接赋初始值即可
  • 页面变量:定义组件或类的变量时必须 关键字指定类型
  • 批量定义变量 X,Y = 0 可同时定义多个变量并赋相同初始值
  • 逻辑型字面量:使用 / 表示真值与假值
  • 空值:使用 表示空对象

函数

在轻语言网页开发中使用函数时,有返回参数值的函数,无需定义返回类型;直接在函数中返回指定数据值即可。

代码示例:

' 无参数、无返回值的函数
函数 无返回值函数()
    调试输出("无返回值的函数被执行")
结束 函数

' 有返回值的函数、不需要定义返回类型,只需要在函数中返回值即可,
' 函数中的参数也不需要定义任何数据类型,所有参数默认可接收所有数据类型
函数 有返回值的函数(参数一,参数二)
    返回 参数一 + 参数二
结束 函数

函数定义要点

  • 使用 函数 ... 结束 函数 定义
  • 无需声明返回类型,直接用 返回 值 返回
  • 参数无需声明类型,所有参数默认可接收任意数据类型
  • 无返回值的函数可省略 返回 语句

数组与对象

数组的定义与使用

数组在轻语言网页开发中采用中括号 [ ] 定义,一个数组也表示用一个中括号包裹的数据值。

代码示例:

' 定义数组,只需要给变量设置初始值为 [ ] 即可
变量 数组1 = [ ]
' 定义含有默认整数值的数组,每个元素使用英文逗号分隔
变量 数组2 = [ 1,2,3]
' 定义含有默认文本值的数组
变量 数组3 = ["欢迎","使用","VcnStudio"]
' 使用数组,取出数组中指定位置的值,索引从 0 开始
' 例如:取出上方 数组3 中的第一个值
调试输出(数组3[0])
' 修改数组指定索引位置的值
' 例如:修改上方 数组3 中第2(索引为1)个值
数组3[1] = "中文编程"
调试输出(数组3)
' 获取数组中有多少个成员
调试输出(取数组成员数(数组3))
' 删除数组中指定索引成员
删除成员(数组3,0)
调试输出(数组3)
' 清空数组
数组3 = []

数组操作要点

  • 定义变量 名称 = [ ]变量 名称 = [值1,值2,...]
  • 索引:从 0 开始,通过 数组[索引] 访问
  • 修改数组[索引] = 新值
  • 成员数取数组成员数(数组)
  • 删除删除成员(数组,索引)
  • 追加添加成员(数组,值)(详见函数文档)
  • 清空:重新赋值为 []

对象的定义与使用

对象在网页开发中采用花括号 { } 定义,在轻语言网页中,使用花括号包裹的键值对数据值,表示一个对象。

代码示例:

' 定义对象,只需要设置初始值为 { } 即可,表示空对象
变量 对象1 = { }
' 空对象中没有任何属性,可以直接通过对象名称点设置属性
' 例如:给 对象1 设置一个类型的属性
对象1.类型 = "测试空对象"
调试输出(对象1)
' 也可以在定义的时候,通过初始值设置对象的属性与属性值
变量 用户1 = { 名称:"张三",年龄:25 }
调试输出(用户1)
' 修改属性的值,由于属性值是完全自定义的,因此IDE没有属性的智能提示,需要手敲
' 将用户1名称属性的值改为:李四
用户1.名称 = "李四"
调试输出(用户1)
' 获取属性的值
调试输出("用户1的年龄:" + 用户1.年龄)
' 遍历对象中的属性和值
变量循环(i = 0,取对象成员数(用户1),1)
    变量 key = 取对象成员名(用户1,i)
    调试输出("属性名称:" + key + ",属性值:" + 用户1[key])
结束循环
' 删除对象中的指定属性,注意:删除应谨慎操作,可能会影响之前的代码
删除对象属性(用户1,"名称")
调试输出(用户1)

对象操作要点

  • 定义空对象变量 名称 = { }
  • 定义带初始值对象变量 名称 = { 属性1:值1, 属性2:值2 }
  • 取属性对象.属性名对象[属性名]
  • 设属性对象.属性名 = 值
  • 遍历属性变量循环(i = 0, 取对象成员数(对象), 1) + 取对象成员名(对象, i)
  • 取属性数取对象成员数(对象)
  • 取属性名取对象成员名(对象, 索引)
  • 删除属性删除对象属性(对象, "属性名")

拉姆达表达式

轻语言网页中的拉姆达表达式与 JavaScript 语言基本一致,不同的区别为:

1.参数可以省略

代码示例:

' 默认表达式写法,带参数
按钮1.置被单击回调((源按钮,源事件)=>{
    调试输出(源按钮)
    调试输出(源事件)
})
' 如果不需要参数可以省略
按钮1.置被单击回调((源按钮,源事件)=>{
    调试输出("按钮1被单击")
})

什么时候拉姆达表达式的参数可以省略呢?

1.在不需要使用参数的时候。

2.在不使用子程序接收回调事件的时候。

2.被执行的代码必须使用 { } 包裹

代码示例:

按钮1.置被单击回调((源按钮,源事件)=>{
    ' 待执行语句必须在{ }中,哪怕只有一句代码,也必须在{ } 中。
    调试输出("按钮1被单击")
})

错误语法:
按钮1.置被单击回调((源按钮,源事件)=>调试输出("按钮1被单击")) ' 调试输出 函数没有在{ }内,轻语言编译器编译时会报错

注意事项

  • 页面变量声明类型:在页面级(不在函数/事件内)声明组件或类变量时必须用 关键字指定类型,例如 变量 按钮1 为 按钮;局部变量无此要求。
  • 数组索引从 0 开始:取出第 N 个元素用 数组[N-1]
  • 对象属性无智能提示:自定义对象属性 IDE 无法提示,需手敲。
  • 遍历对象需用循环:通过 变量循环 + 取对象成员数 + 取对象成员名 遍历对象的属性。
  • 拉姆达表达式必须用 {} 包裹:单行表达式体也必须用花括号包裹,否则编译报错。
  • 拉姆达只能作为参数传递:不能赋值给变量(详见文档轻语言网站:轻语言语法速查)。
  • 未定义 表示空对象(null),未定义 表示未初始化的变量(undefined)。
  • 逻辑值字面量:使用 / ,不是 true / false

学习要点总结

知识点关键代码适用场景
变量声明变量 X = 0局部变量
带类型声明变量 按钮1 为 按钮页面级组件/类变量
函数定义函数 名(参数) ... 返回 值 结束 函数复用逻辑
数组定义变量 数组 = [1,2,3]有序数据集合
数组取值数组[0]按索引取值
数组长度取数组成员数(数组)获取成员数
对象定义变量 用户 = {名称:"张三"}键值对数据
对象取值用户.名称 / 用户["名称"]取属性值
遍历对象变量循环 + 取对象成员名遍历属性
拉姆达(参数) => { 语句 }回调函数

相关文档

  • 文档轻语言网站:循环语句体结构 —— 变量循环遍历对象/数组
  • 文档轻语言网站:轻语言语法速查 —— 函数定义、作用域、拉姆达限制
  • 文档前端(JavaScript)函数_数组 —— 取数组成员数添加成员删除成员
  • 文档前端(JavaScript)函数_对象 —— 取对象成员数取对象成员名删除对象属性
  • 文档前端(JavaScript)函数_JSON —— JSON编码/JSON解析
  • 文档综合演示:XML 定义待办事项列表演示 —— 对象数组与列表渲染实战
  • 文档综合演示:手机移动端记事本网页开发 —— 对象数组与本地存储
  • 文档综合演示:网页留言板开发 —— 对象数组增删改查