将你的个人介绍和档案放置在此处。
2025/10/30小于 1 分钟
window——不但充当全局作用域,而且表示浏览器窗口
innerWidth / innerHeight
获取浏览器窗口内部宽高。
内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高。
outerWidth / outerHeight
获取浏览器窗口的整个宽高。
navigator——表示浏览器的信息
常见属性:
- navigator.appName:浏览器名称;
- navigator.appVersion:浏览器版本;
- navigator.language:浏览器设置的语言;
- navigator.platform:操作系统类型;
- navigator.userAgent:浏览器设定的
User-Agent字符串。
2025/10/30大约 2 分钟
HTML文档被浏览器解析后是一颗DOM树,要改变HTML的结果,可以通过JavaScript来操作DOM。
DOM是一个属性结构,操作DOM就是这几个操作:
- 更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容;
- 遍历:遍历该DOM节点下的子节点,以便进行进一步操作;
- 添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点;
- 删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。
DOM获取
2025/10/30大约 8 分钟
两种实现方式:
- 伪类
- 函数化
伪类
通过定义一个构造器,并扩充它的原型实现继承效果。
var Manmmal = function (name) {
this.name = name;
}
Manmmal.prototype.get\_name = function() {
return this.name;
}
Manmmal.prototype.says = function() {
return this.saying '';
}
// 现在我们可以构造一个实例
var myMammal = new Mammal('Herb the Mammal');
var name = myMammal.get\_name(); // 'Herb the Mammal'
2025/10/30大约 3 分钟
TypeScript 高级类型官方文档
索引类型(Index types)
在项目中时常有通过传入对象 key 值获取对象中其中一个值的需求,现在有一个想法,想通过动态传入的 key 值获取到对应的类型。在 TypeScript 中想要取得一个 interface 其中的一个属性,可以使用这种写法:
2025/10/30大约 1 分钟
console.log((\[\])?true:false);
console.log((\[\]==false?true:false));
console.log(({}==false)?true:false)
2025/10/30大约 2 分钟
帮你彻底搞懂JS中的PROTOTYPE、__PROTO__与CONSTRUCTOR(图解)
- 我们需要牢记两点:①_proto_和_constructor_属性是对象所独有的;② _prototype_属性是函数所独有的,因为函数也是一种对象,所以函数也拥有_proto_和_constructor_属性。
- _proto_属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的_proto_属性所指向的那个对象(父对象)里找,一直找,直到_proto_属性的终点null,再往上找就相当于在null上取值,会报错。通过_proto_属性将对象连接起来的这条链路即我们所谓的原型链。
- _prototype_属性的作用就是让该函数所实例化的对象们都可以找到公用的属性和方法,即f1.proto === Foo.prototype。
- _constructor_属性的含义就是指向该对象的构造函数,所有函数(此时看成对象了)最终的构造函数都指向Function。
2025/10/30大约 1 分钟
对象的 set get 是es5的中对象的特性,使用示例:
在初始化对象的时候这样使用
let b = {
get x() {
return x;
},
set x(val) {
x = val + 2;
}
};
b.x = 6; // b.x 被赋值,同时进入set函数对值进行处理
console.log(b.x); // b.x = 8
2025/10/30小于 1 分钟
Feature contribution
随着部门深入使用 dify,逐渐遇到了一些卡点问题,因此我也顺便看了下 Dify 社区的贡献指南,想着给社区提供一些我们这边的思路。
目前来说是做了两个 feature:
- 支持复制节点到迭代、循环节点内部
- 工作流发布为工具支持结构化数据输出
这两个 feature 都能显著提升平台使用体验。
第一个 feature 在开发工作流的过程中,一般我们是先搭直线的流程,再通过迭代节点等来进行流程的优化,此时如果要将许多节点一次性复制到迭代节点内部,就会特别方便,在以往只能重新再迭代节点内部再重搭一次流程。这个 feature 已经被合并到主分支且在 1.9.0 正式上线了。
2025/10/30大约 9 分钟
