对象
对象
对象(Object)是一种非常核心和基础的数据结构,同时也是一种引用类型。对象用于存储和表示具有键值对(key-value pairs)结构的数据,其中键(也称为属性名或属性)是字符串,而值则可以是任意数据类型,包括数字、字符串、布尔值、数组、函数甚至是其他对象。
普通对象
普通对象是最基本的对象类型,由用户通过对象字面量 {} 创建。它们主要用于存储键值对。
let user = {
name: "xx",
age: 123,
getName() {
return this.name;
},
setName(name) {
this.name = name;
}
}
内置对象
vino 提供了console
、JSON
、log
、global
、config
、vino
共6种内置对象
console
console
用于开发者在控制台进行调试输出,建议在开发环境下使用,console
只有1个log
函数。生产环境建议使用log
对象
示例
let message = "Hello, World!";
console.log(message); // 输出:Hello, World!
log
log
用来记录日志,属性与方法如下
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
info | 方法 | ...message:any[] | void | 记录信息级别的日志 |
debug | 方法 | ...message:any[] | void | 记录调试级别的日志 |
warn | 方法 | ...message:any[] | void | 记录警告级别的日志 |
error | 方法 | ...message:any[] | void | 记录错误级别的日志 |
fatal | 方法 | ...message:any[] | void | 记录致命错误级别的日志 |
config | 方法 | object | void | 配置日志参数,如输出方式、日志级别等 |
输出日志
log.info("info");
log.debug("debug");
log.warn("warn");
log.error("error");
log.fatal("fatal");
注意
log.fatal 会中断程序运行
控制台打印:
2024-02-06 11:58:43 INFO index.js:13 > info
2024-02-06 11:58:43 DEBUG index.js:14 > debug
2024-02-06 11:58:43 WARN index.js:15 > warn
2024-02-06 11:58:43 ERROR index.js:16 > error
2024-02-06 11:58:43 FATAL index.js:17 > fatal
config
默认情况下,log会输出到控制台,默认为debug级别。你可以通过下面配置来修改默认日志配置
//配置日志
log.config({
out: 0, //日志输出方式:0控制台,1文件
level: "info", //日志级别:debug,info,warn,error,fatal
filename: "/Desktop/temp/logs/x.log",//当out=1时,必须指定日志文件路径
maxSize: 1,//日志文件最大大小,单位MB
maxBackups: 2,//日志文件最大备份数
maxAge: 3,//日志文件最大保存天数
compress: false//是否压缩日志文件
});
JSON
属性与方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
stringify | 方法 | value:any | string | 将一个值转换为 JSON 字符串 |
parse | 方法 | text:string,type?:string | any | 将一个 JSON 字符串转换回的值 |
stringify
JSON.stringify()
方法用于将数组中的所有元素连接成一个字符串。
语法
JSON.stringify(value);
- value: 要转换为 JSON 字符串的值。
示例
const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj);
console.log(myJSON); // 输出:'{"name":"John","age":30,"city":"New York"}'
parse
JSON.parse()方法将一个 JSON 字符串转换回 JavaScript 的值。
语法
JSON.parse(text, type);
- text: 要被解析成 JavaScript 值的 JSON 字符串。
- type: (可选),指定要转换成的 JavaScript 值的类型,目前支持
Map
,Set
。
示例
const jsonString = '{"name":"John","age":30,"city":"New York"}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 输出:John
let arr = JSON.parse(`[1, 2, 3, "w", 2, 3 ,"2"]`);
console.log(arr); // 输出:[1, 2, 3, "w", 2, 3, "2"]
let set = JSON.parse(`[1, 2, 3, "w", 2, 3 ,"2"]`, "Set");
console.log(set); // 去重后为 {1, 2, 3, "w", "2"},输出:Set(5)
let map = JSON.parse(`{"name":"x","age":[1,2,3]}`, "Map");
console.log(map); // Map(2)
global
global
对象是一个map,可以存储任何key-value数据。global
是全局唯一和共享的,这也意味着在程序中的任何地方都可以共享数据。
global.set("name", "vino");
let name = global.get("name");
作用
- 提供一个全局容器;
- 多个js文件之间无需频繁
import
和export
,也可以进行数据交换; - 解耦js文件之间的依赖;
config
config
对象的内容来自于config.js文件的默认导出。config.js文件是vino框架唯一且默认的配置文件,该文件存放位置为项目入口js文件的同级目录,程序启动时会自动加载。也可以在启动时通过--config=./config.js
指定配置文件的路径。
/project
├── index.js //主文件
├── config.js //配置文件
└── src
├── f1.js
├── f2.js
└── f3.js
index.js 文件
let server = config.server;
//这里会打印: 8080
console.log(server.port)
config.js 文件
export default {
server: {
port: 8080,
}
}
作用
由于vino框架支持将js文件编译成ss字节码文件,编译器会将所有依赖文件(通过import
导入的文件) 全部编译到字节码中,这样当执行ss文件时,就无法对配置进行修改。
注意事项
不要在任何代码中通过import
来导入config.js
文件
vino
vino
对象中包含filename
和dirname
2个属性,用于获取主文件绝对路径和主文件所在目录的绝对路径
属性与方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
filename | 属性 | string | 主文件的绝对路径 | |
dirname | 属性 | string | 主文件所在目录的绝对路径 | |
version | 属性 | string | 获取当前vino的版本号 | |
vinopath | 属性 | string | 获取vino主目录 |
关于路径相关的内容请查阅相对路径