逻辑流程
- 变量
- 条件
- 循环
等效变量
let items = (function () { return [ {name: 'foo'}, {name: 'bar'} ] })()
等效条件
if (showIf && !hideIf) { // code }
等效循环
for (let index = 0; index < items.length; index++) { const item = items[index] // code }
等效事件
// 获取元素 const button = document.getElementById('myButton') // 添加 click 事件监听器 button.addEventListener('click', function() { set('name', 'new') })
常规函数
set
用于设置对象的某个属性值,如果路径不存在,则会创建它。
set(path, value) // set(path: string, value: any): any
path
: 要修改的目标对象属性路径,可以是一个字符串(用点.
分隔的路径)或数组。value
: 要设置的值。
赋值
set('name', 'new')
等效
let name = 'value' name = 'new'
通过路径赋值
set('user.name', 'bar')
等效
let user = {name: 'foo'} user.name = 'bar'
通过路径赋值(数组)
set('users.1.name', 'john')
等效
let users = [{name: 'foo'}, {name: 'bar'}] users[1].name = 'john'
get
获取对象中指定路径的值,如果路径不存在,则返回默认值(默认值为 undefined
)
常规获取值
get(path, defaultValue) // get(path: string, defaultValue?: any): any
path
: 属性路径,可以是一个字符串(如'a.b.c'
)或数组(如 `['a', 'b', 'c'])。defaultValue
(可选): 如果路径不存在,则返回该默认值。默认为undefined
。
通过路径获取值
get('user.name')
等效
user.name
unset
删除对象中指定路径的属性。
unset(path) // unset(path: string)
path
: 属性路径,可以是字符串或数组。- 返回值: 如果删除成功,返回
true
;如果路径不存在或无法删除,返回false
。
has
检查对象中是否包含指定路径的属性。
has(path) // has(path: string): boolean
path
: 属性路径,可以是一个字符串(例如'a.b.c'
)或数组(例如['a', 'b', 'c']
)。- 返回值: 如果对象包含指定的路径,返回
true
,否则返回false
。
数组函数
push
向数组的末尾添加一个或多个元素,并返回新的数组长度。
push('path', {name: 'foo'})
等效
let items = [] items.push({name: 'foo'})
pop
移除数组的最后一个元素,并返回该元素。此操作会改变原数组的长度。
pop('items')
等效
//let items = ['Banana', 'Orange', 'Apple', 'Mango'] items.pop()
shift
移除数组的第一个元素,并返回该元素。此操作会改变原数组的长度。
shift('items')
等效
//let items = ['Banana', 'Orange', 'Apple', 'Mango'] items.shift()
splice
从数组中删除、替换或添加任意位置的元素。它可以接收多个参数,第一个参数是起始索引,第二个参数是要删除的元素个数,后续参数是要插入的元素。
splice('items', 2, 0, 'Lemon', 'Kiwi')
等效
//let items = ['Banana', 'Orange', 'Apple', 'Mango'] items.splice(2, 0, 'Lemon', 'Kiwi')
Data Store (数据存储)
set(nameOrObject, value)
设置数据存储中的值。可以接受一个对象来设置多个键值对,或者接受键和值来设置单个键值对。
参数:
nameOrObject
:string
|Object
— 如果是字符串,表示要设置的键名;如果是对象,则包含要设置的多个键值对。value
:any
(可选) — 如果nameOrObject
是字符串,则此参数表示要设置的值。
返回:
- 无
示例:
set("myKey", "myValue"); set({ key1: "value1", key2: 123 });
get(name, defaultValue)
从数据存储中获取指定键的值。如果键不存在,则返回可选的默认值。
参数:
name
:string
— 要获取的键名。defaultValue
:any
(可选) — 如果键不存在时返回的默认值。
返回:
any
— 键对应的值或默认值。
示例:
const value = get("myKey", "defaultValue");
push(name, value)
将一个值追加到数据存储中指定键的数组中。如果指定键的值不是数组,则会抛出错误。
参数:
name
:string
— 要操作的数组的键名。value
:any
— 要追加到数组中的值。
返回:
Array<any>
— 追加后的数组。
示例:
set("myArray", [1, 2]); push("myArray", 3); // myArray 现在是 [1, 2, 3]
setContext(nameOrObject, value)
设置上下文数据中的值。可以接受一个对象来设置多个键值对,或者接受键和值来设置单个键值对。上下文数据通常用于在不同的脚本执行之间共享数据。
参数:
nameOrObject
:string
|Object
— 如果是字符串,表示要设置的键名;如果是对象,则包含要设置的多个键值对。value
:any
(可选) — 如果nameOrObject
是字符串,则此参数表示要设置的值。
返回:
- 无
示例:
setContext("user", { id: 1, name: "Alice" }); setContext({ theme: "dark", lang: "en" });
getContext(name, defaultValue)
从上下文数据中获取指定键的值。如果键不存在,则返回可选的默认值。
参数:
name
:string
— 要获取的键名。defaultValue
:any
(可选) — 如果键不存在时返回的默认值。
返回:
any
— 键对应的值或默认值。
示例:
const user = getContext("user", null);
getContexts()
返回所有上下文数据。
参数:
- 无
返回:
Object
— 包含所有上下文数据的对象。
示例:
const allContexts = getContexts(); console.log(allContexts.theme);
Core (核心)
runActions(actionNames)
运行一个或多个宿主环境定义的动作。
参数:
actionNames
:string
|Array<string>
— 要运行的动作的名称或名称数组。
返回:
- 无
示例:
runActions("action1"); runActions(["action2", "action3"]);
目录