- 博客(103)
- 资源 (1)
- 收藏
- 关注
原创 ES6 学习笔记3—7数值的扩展、8函数的扩展、9数组的扩展
这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。对象上面,行为完全保持不变。
2025-12-08 20:34:56
188
原创 ES6 学习笔记1—简介、let和const命令、变量的解构赋值
上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋值会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。但是,浏览器没有遵守这个规定,为了兼容以前的旧代码,还是支持在块级作用域之中声明函数,因此上面两种情况实际都能运行,不会报错。
2025-12-02 22:14:01
780
原创 Web基础
HTML 的中文全称是 超文本标记语言。超文本:指的是它不仅包含文本,还能包含图片、链接、音频、视频等其他资源的引用,这些资源通过“超链接”相互连接,形成一个网状结构。标记语言:它不是一种“编程语言”,而是一种用来描述网页结构和内容的语言。它使用一系列预定义的“标签”来标记内容,告诉浏览器如何显示这些内容。简单来说,当您在浏览器中访问一个URL后,服务器会返回一个 HTML 文件。浏览器会读取这个文件中的HTML代码,然后将其“渲染”成您所看到的丰富多彩的网页。
2025-12-01 20:41:18
589
原创 RN项目结构、配置及IDE配置
navigation/: 处理应用的路由和导航逻辑,通常会使用 @react-navigation/native 等库来管理导航。metro.config.js: Metro bundler 的配置文件,可以在这里自定义 bundler 行为,例如资源解析。screens/: 应用的各个页面,通常是较大的组件,代表不同的视图或功能模块。App.js: 应用的主组件,是应用的入口点,通常在这里设置全局状态或根组件。components/: 存放可复用的 UI 组件,通常是小的、独立的组件。
2025-12-01 17:00:05
224
原创 React Native学习路径与资源推荐
RN从入门到进阶的路线图总结如下,汇总了各个阶段的核心知识点与对应的推荐资源:[第一阶段: 基础入门][JavaScript与 ES6] --> [React 核心概念] --> [RN 开发环境与第一个应用][第二阶段: 核心技能][核心组件与 API] --> [页面布局与样式] --> [导航与路由][第三阶段: 进阶实战][网络与数据] --> [混合开发] --> [性能优化]:永远是信息最准确、更新最及时的第一手资料。
2025-12-01 14:55:32
824
原创 鸿蒙应用程序包管理模块
BundleInfoBundleFlagBundleFlag用于精确控制返回的BundleInfo包含哪些内容。某些标志位(如获取Ability信息)需要与组合使用才生效。
2025-11-20 20:51:08
400
原创 Mac上DevEco-Studio功能/使用介绍
右击代码区域左侧的line number显示区域 --> "Annotate with Git Blame"
2025-11-11 17:39:59
454
原创 ArkTS跨语言交互
除了支持使用ArkTS开发外,开发者还可以通过Node-API实现ArkTS与C/C++(Native)的跨语言交互能力。提供了增强功能,支持更灵活的ArkTS交互和自定义对象创建。开发者可结合Node-API的扩展能力进行功能扩展,并参考。HarmonyOS的Node-API是基于Node.js社区版本的扩展实现,但与原生Node-API并不完全兼容。进行Native能力的开发和封装,并通过在ArkTS侧导入Native模块的方式实现跨语言调用。进行跨语言功能开发。
2025-11-06 22:03:41
171
原创 鸿蒙Navigation、三方库hmrouter使用
组件导航(Navigation)主要用于实现Navigation页面(NavDestination)间的跳转,支持在不同Navigation页面间传递参数,提供灵活的跳转栈操作,从而更便捷地实现对不同页面的访问和复用。本文将从组件导航(Navigation)的显示模式、路由操作、子页面管理、跨包跳转以及跳转动效等几个方面进行详细介绍。
2025-11-01 19:22:32
799
原创 鸿蒙三方库介绍
其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。@pura/harmony-utils 是鸿蒙生态中一个非常受欢迎的三方工具库,它通过封装大量实用的工具类,能极大地提升你的开发效率。应用级别的工具类,可获取上下文、窗口信息,设置语言、颜色模式,监听应用生命周期等。
2025-11-01 18:05:46
833
原创 鸿蒙工程结构、开发指南
在鸿蒙应用开发中,hvigor 目录与构建工具密切相关。为了帮助你快速建立整体认知,下面这个表格汇总了 hvigor 目录及其相关文件的核心信息:目录/文件主要功能关键配置文件与作用hvigor目录存储构建工具的配置和缓存信息,用于发布打包。hvigor-config.json5: 指定构建工具和插件版本。.hvigor目录存储构建过程中的临时文件和缓存。通常由工具自动管理,无需手动修改。定义应用级或Module级的编译构建任务脚本。开发者可在此自定义构建工具版本、控制构建参数。
2025-11-01 11:31:32
907
翻译 第13章:算法
一、字符串反转 void char_reverse(char* cha) { // 指向第一个字符 char* begin = cha; // 指向最后一个字符 char* end = cha + strlen(cha) - 1; while (begin < end) { // 交换前后两个字符,同时移...
2018-11-30 17:32:08
614
翻译 第12章:架构/框架
零、概述 架构/框架问题主要用于考察中高级、资深工程师。 1、为什么要在APP中引入框架?他有什么好处呢?1)、模块化2)、分层3)、解耦4)、降低代码重合度 一、图片缓存 1、怎么设计一个图片缓存框架? 2、图片通过什么样的方式进行读写,过程是怎样的?以图片URL的单向Hash值作为key进行存储。读取流程其实就是浏览器的...
2018-11-30 17:27:00
557
翻译 第11章:设计模式
一、六大设计原则 1、单一职责原则一个类只负责一件事 2、依赖倒置原则抽象不应该依赖于具体实现,具体实现可以依赖于抽象。 3、开放-关闭原则对修改关闭,对扩展开放。比如常见的就是可继承,不可修改。 4、里氏替换原则父类可以被子类无缝替换,且原有功能不受任何影响。比如kvo的实现。 5、接口隔离原则使用多个专门协议、而不...
2018-11-30 17:19:25
450
原创 第10章:网络——一、HTTP协议;二、HTTPS与网络安全;三、TCP/UDP;四、DNS解析;五、Session/Cookie
一、HTTP协议 1、你是怎么理解HTTP的?HTTP具体包含哪些内容?HTTP是超文本传输协议,主要包含三部分内容:请求/响应报文,链接建立流程,HTTP的特点。 2、请求/响应报文请求报文由请求行、header、报文内容组成。请求行包括方法、URL、协议版本。header由多个key/value组成。响应报文由响应行、header、报文内容组成。响应行包括版...
2018-11-30 17:13:52
714
翻译 第9章:RunLoop面试问题
一、概念 1、什么是RunLoop?RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象。 2、什么是事件循环?没有消息需要处理时,休眠以避免资源占用,此时当前线程的控制权由用户态切换到内核态;有消息需要处理时,立即被唤醒,此时状态由内核态切换到用户态。 3、应用程序的main函数为什么能一直运行不退出?因为main函数中调用了UI...
2018-11-30 16:41:25
542
翻译 第8章:多线程面试问题——一、GCD;二、NSOperation;三、NSThread;四、多线程与锁
一、GCD 1、同步/异步 和 串行/并发1)、GCD调用的四种组合 dispatch_sync(serial_queue,^{…}); 同步调用串行队列 dispatch_async(serial_queue,^{…});异步调用串行队列 dispatch_sync(concurrent_queue,^{…}); dispatch_asyn...
2018-11-30 16:35:05
930
原创 第7章:Block的使用——一、Block介绍;二、Block的本质;三、Block截获变量;四、__block修饰符;五、Block内存管理;六、Block的循环引用
一、Block介绍 1、Block是将函数及其执行上下文封装起来的对象。二、Block的本质 Block是如何将函数及其上下文封装起来的呢?下面通过源码说明。我们写一个Block的定义及调用方法,然后使用clang -rewrite-objc file.m命令查看编译之后的文件内容,来理解Block的封装、调用过程。 Block的定义及调用方法如下:...
2018-11-30 16:19:35
1047
翻译 第6章:内存管理——一、内存管理包含的内容;二、内存布局;三、内存管理方案
一、内存管理包含的内容 1、内存布局 2、内存管理方案 3、数据结构 4、ARC&MRC 5、引用计数 6、弱引用 7、自动释放池 8、循环引用 二、内存布局BSS段存储未初始化的全局变量和静态变量,一旦初始化就会从BSS段中回收掉,转存到数据段中;data段存储已经初始化的全局...
2018-11-30 15:58:15
879
翻译 第5章:运行时相关技术特性——六、动态添加方法;七、动态解析方法
六、动态添加方法 主要用到class_addMethod(要为那个类添加方法,要添加方法的SEL,方法实现,Types);,如class_addMethod(self,@selector(test),testImp,”v@:”);七、动态解析方法 1、是否使用过@dynamic@dynamic修饰属性时,属性的get、set方法是在运行时添加,而不是在编译时生成实现...
2018-11-30 15:40:27
315
原创 第5章:运行时相关技术特性——四、消息转发流程;五、Method-Swizzling
四、消息转发流程 res方法如果处理的话就涉及到动态添加方法的内容,第七小节讲解。 找找资料再整理全面一点,看图说明的不清晰、详细五、Method-Swizzling 1、什么是Method-Swizzling交换两个方法的方法实现。 2、涉及的三个方法如下图...
2018-11-30 15:40:09
482
翻译 第5章:运行时相关技术特性——二、对象、类对象与元类对象;三、消息传递
二、对象、类对象与元类对象 1、类对象和元类对象是什么?两者之间有什么区别?类对象存储实例方法列表等信息;元类对象存储类方法列表等信息。类对象通过isa指针可以找到元类对象。 2、类对象调用类方法时如果元类及祖先元类中都没有该类方法,但是根类对象中有同名的实例方法,那么该实例方法会被调用吗?会的。因为元类对象最终继承自根类对象。 三、消息传递 ...
2018-11-29 22:31:04
347
翻译 第5章:运行时相关技术特性——一、Runtime包含的内容;二、Runtime数据结构
一、Runtime包含的内容 1、Runtime数据结构 2、类对象与元类对象 3、消息传递 4、方法缓存 5、消息转发 6、Method-Swizzling 7、动态添加方法 8、动态解析方法 二、Runtime数据结构 1、Runtime基础数据结构如下objc_object...
2018-11-29 22:24:58
501
翻译 第4章:Objective-C语言相关技术特性——四、扩展;五、代理;六、通知;七、KVO;八、KVC;九、属性关键字
四、扩展 1、一般用扩展做什么?1)、声明私有属性2)、声明私有方法3)、声明私有成员变量 2、扩展的特点(与类别的区别)1)、编译时决议2)、只以声明的形式存在,多数情况下寄生于宿主类的.m文件中3)、不能为系统类添加扩展 五、代理 一般针对初级工程师考察代理,对中级及以上工程师考察的比较少。 1、代理的理解...
2018-11-29 22:17:15
1271
翻译 第4章:Objective-C语言相关技术特性——三、关联对象
1、是否能为分类添加“成员变量”?通过关联对象可以为分类添加成员变量。2、关联对象为分类添加的“成员变量”放在了哪里?关联对象由AssociationsManager管理并在AssociationsHashMap中存储。所有对象的关联内容都在同一个全局容器中。3、关联对象的本质4、源码分析 ...
2018-11-29 22:06:21
345
翻译 第4章:Objective-C语言相关技术特性——二、分类
1、用分类做了哪些事情 1)、声明私有方法 2)、分解体积庞大的类文件 3)、把Framework的私有方法公开化2、分类的特点(与扩展的区别) 1)、运行时决议:运行之前分类的方法并没有附加到宿主类中,运行时通过runtime将分类内容添加到宿主类中 2)、可以为系统类添加分类3、分类中都可以添加哪些内容 ...
2018-11-29 22:02:57
378
翻译 第4章:Objective-C语言相关技术特性——一、Objective-C语言相关技术特性
一、Objective-C语言相关技术特性 分为如下几类: 1、分类 2、关联对象 3、扩展 4、代理 5、通知 6、KVO 7、KVC 8、属性关键字...
2018-11-29 21:56:52
544
翻译 第三章UI视图——七、离屏渲染==属于GPU的优化部分
1)、On-Screen Rendering 意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行2)、Off-Screen Rendering 意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作3)、何时触发离屏渲染 当我们指定了UI视图的某些属性,标记为它在未预合成之前不能用于当前屏幕上直接显示时就...
2018-11-29 21:54:17
445
翻译 第三章UI视图——六、UI绘制原理&异步绘制==属于CPU的优化部分
这是高级考察点。1、UIview绘制原理步骤如下: 其中view.layer调用setNeedsDisplay方法之后只是给当前layer打上了一个脏标记,然后在当前runloop将要结束时调用layer的dispaly方法,然后进入当前视图真正的绘制流程中。2、系统绘制流程如下 在layer内部会创建一个backing store,即CGContext...
2018-11-29 21:52:47
610
翻译 第三章UI视图——五、UI卡顿、掉帧
1、UI卡顿、掉帧原因2、滑动优化方案(高级面试问题)预排版放到子线程去做 如果触发了离屏渲染,则GPU触发OpenGL的多通道渲染管线,造成额外的开销,使得进行纹理渲染的工作量就会非常大,容易造成掉帧。 如果视图层级非常复杂,则GPU进行视图混合的工作量就会非常大,因为需要合成每个像素点时需要做大量计算。...
2018-11-29 21:50:12
558
代码优化——cell重用
2018-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅