[置顶] 一文搞懂javascript中的var、let、const

摘要: 简介 var, let and const是JavaScript中三种定义变量的方式,它们之间有什么区别呢?这是前端面试中常见的一道题,今天我们来一文说透它。 let和const区别不大,主要是const声明的是常量,不可修改,而let声明的变量是可修改的。所以我们重点放在var和let上。 变量初 阅读全文

posted @ 2025-06-29 22:23 前端风云志 阅读(396) 评论(0) 推荐(2)

2025年7月15日

Ant Design如何自定义输入框(Input)组件样式

摘要: 介绍 今天接到一个需求,需要自定义一个Input输入框,我们的项目使用React + Ant Design进行开发,按理说Ant Design已经提供了非常丰富的组件样式,但有时候还是无法满足特定的需求,比如我们的输入框要求渲染成下面的样子 而Ant Design的Input组件默认的渲染结果是这样 阅读全文

posted @ 2025-07-15 07:31 前端风云志 阅读(195) 评论(0) 推荐(0)

2025年7月13日

TypeScript枚举类型应用:前后端状态码映射的最简方案

摘要: 介绍 这篇文章来谈一下 TypeScript 中的枚举类型(Enum)以及一些最佳实践。事情的起因是这样的,今天看到自己之前写的一段代码,感觉不是很好,于是想优化一下,期间用到了枚举类型,遂记录一下。为了方便理解,我将原来的例子简化一下。 业务需求 业务需求是这样的:我们要实现一个Job系统,你可以 阅读全文

posted @ 2025-07-13 10:32 前端风云志 阅读(137) 评论(0) 推荐(1)

2025年7月12日

JavaScript面试题,为什么[] + 0 = '0', 而{} + 0 = 0?

摘要: 介绍 昨天在网上看到一道面试题,是关于JavaScript中的+元算符的,如下: [] + 0 = ? {} + 0 = ? 要解决这道题,我们首先要了解JavaScript中+运算符的行为,+元算符在JavaScript中主要有三种用途:一是用于数字相加,二是用于字符串连接,三是用于类型转换。 1 阅读全文

posted @ 2025-07-12 10:11 前端风云志 阅读(340) 评论(3) 推荐(3)

2025年7月8日

JavaScript中如何遍历对象?

摘要: JavaScript中如何遍历对象? 今天来点稍微轻松的话题,如何在JavaScript中遍历对象,在平常的工作中,遍历对象是很常见的操作,javascript提供了多种方法来遍历对象的属性。这些方法各有特点,不同的场景需要使用不同的方法。 假设我们有一个Person对象,包含名字和年龄两个属性,下 阅读全文

posted @ 2025-07-08 07:21 前端风云志 阅读(694) 评论(4) 推荐(9)

2025年7月6日

typescript结构化类型应用两例

摘要: 介绍 结构化类型是typescript类型系统的一个重要特性,如果不了解这个特性,则经常会被typescript的行为搞得一头雾水,导致我们期待的行为与实际的行为不一致。今天我们就来看两个例子。 不了解结构化类型的同学,可以先看看这篇:TypeScript结构化类型初探 第一个例子 下面的代码定义了 阅读全文

posted @ 2025-07-06 15:45 前端风云志 阅读(236) 评论(0) 推荐(0)

2025年7月5日

TypeScript结构化类型初探

摘要: 啥是鸭子类型? 作为一个前端程序员,想必大家都知道javascript是一个弱类型语言,如果需要类型的支持,那就需要借助typescript来实现,但是大家可曾听过这样一个说法? javascript属于鸭子类型 当我第一次看到这个说法时,我不禁哈哈大笑,鸭子类型是啥?其实这不过是一个比喻而已,鸭子 阅读全文

posted @ 2025-07-05 16:48 前端风云志 阅读(164) 评论(0) 推荐(2)

2025年7月2日

JavaScript Quine揭秘:如何让程序输出自身源代码?

摘要: 介绍 如何写一段javascript程序,输出自身的源代码?这个问题非常有意思,大家不妨先尝试一下,反正在尝试了半个小时之后,我果断放弃了。 这种能输出自身的程序在英文里被称为quine。 准备知识 其实要实现这样一段程序,至少要掌握javascript中两个重要的知识点: IIFE toStrin 阅读全文

posted @ 2025-07-02 19:56 前端风云志 阅读(193) 评论(0) 推荐(0)

2025年7月1日

javascript中IIFE(立即执行函数表达式)到底是咋来的?

摘要: 介绍 IIFE(Immediately Invoked Function Expression),中文名称:立即执行函数表达式,其实IIFE最早并不叫这个名字,而是叫做Self-Executing Anonymous Function,即自执行匿名函数。根据MDN的资料,IIFE这个说法最早由Ben 阅读全文

posted @ 2025-07-01 08:06 前端风云志 阅读(231) 评论(0) 推荐(1)

2025年6月16日

TypeScript实用类型之Omit

摘要: 概述 TypeScript Utility Types(实用工具类)包含一系列预定义的类型,用于简化类型操作,善用这些类型可以让我们的代码更加简洁优雅,今天来学习一下Omit类型。Omit类型可以优雅的解决类型重复问题,避免冗余代码。 Omit类型的作用是什么?与以往不同,我们先不介绍晦涩难懂的概念 阅读全文

posted @ 2025-06-16 22:39 前端风云志 阅读(235) 评论(0) 推荐(2)

2020年8月12日

Axios 禁用缓存

摘要: Disable cache for Axios1. set headers.Cache-Control = 'no cache' // not work for 0.19.x or later?2. set timestamp in url parameter for each request(ne 阅读全文

posted @ 2020-08-12 17:06 前端风云志 阅读(3726) 评论(0) 推荐(0)

2020年8月8日

javascript定义函数后立即执行(IIFE)

摘要: Talk is cheap, show me the code. // Immediately Invoked Function Expression - IIFE // 定义后立即执行的JavaScript函数。 // 基本语法,将函数定义在()内部,最后附加()执行函数。 // 一个小技巧,先写 阅读全文

posted @ 2020-08-08 19:31 前端风云志 阅读(834) 评论(0) 推荐(0)

2020年7月9日

html file input onchage没有调用(两次选择同一个文件)

摘要: 在html中,如果input的类型是file,且第二次选择的文件与第一次相同,那么onchange事件不会调用。 如果想调用,需要将event.target.value设置为null,如下: 原生写法: <input id="file" onchange="file_changed(this)" o 阅读全文

posted @ 2020-07-09 14:42 前端风云志 阅读(951) 评论(0) 推荐(0)

阿里云javascript分片上传失败的解决办法

摘要: 前端项目:React + Antd mobile + 阿里云OSS Node.js SDK实现文件上传。 在电脑上运行良好,放到手机上大文件就上传失败。 打开Chrome,地址栏输入`chrome://inspect/#devices`祭出Chrome调试神器 发现如下错误: 于是顺藤摸瓜来到htt 阅读全文

posted @ 2020-07-09 08:34 前端风云志 阅读(1052) 评论(0) 推荐(0)

2020年7月7日

react项目添加typescript类型定义文件 .d.ts

摘要: 最近用react + antd mobile + typescript开发项目,其中使用了rc-form这个包,可惜没有typescript版本,导致找不到类型定义。 一起来重温一下这个经典的错误。 D:/Code/test/src/pages/me/register/RegisterTest.ts 阅读全文

posted @ 2020-07-07 08:50 前端风云志 阅读(8728) 评论(0) 推荐(1)

2020年7月5日

h5 移动端适配方案

摘要: h5 移动端适配方案 设定viewport 打开public\index.html,在html\head结点下加入<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum- 阅读全文

posted @ 2020-07-05 08:42 前端风云志 阅读(3487) 评论(0) 推荐(0)

2020年7月1日

Ant Design Mobile 覆盖默认的样式。

摘要: 直接在css中这样写是不行的,完全没有效果。 .am-list-item.am-input-item { height: 36px; min-height: 30px; } 要像下面这样,加上global才有效果。 :global { .am-list-body { background-color 阅读全文

posted @ 2020-07-01 21:29 前端风云志 阅读(2113) 评论(0) 推荐(0)

gyp verb check python checking for Python executable "python2" in the PATH - noda-sass安装的艰难之路。

摘要: 第一次安装出现如下错误: gyp verb check python checking for Python executable "python2" in the PATH gyp verb `which` failed Error: not found: python2 gyp verb `wh 阅读全文

posted @ 2020-07-01 21:12 前端风云志 阅读(14693) 评论(1) 推荐(0)

2020年6月21日

Error: Activity class MainActivity does not exist.

摘要: 这是一个熟悉而又陌生的错误,当年做的第一个React-Native项目就有这个错误,一直没有解决,今天又出现了,原因是我改了项目文件夹的名称,用Android Studio重新打开之后,就又出现了这个错误。 解决办法也很简单,直接删除.idea文件夹,用Android Studio重新打开项目再次编 阅读全文

posted @ 2020-06-21 11:32 前端风云志 阅读(2324) 评论(0) 推荐(0)

2020年6月6日

React优化

摘要: 背景 React开发的项目首页加载慢是常见问题,网上有很多优化手段,但是具体情况还要具体分析,最近用React撸了一个网站,周末无事,正好优化一下。 优化目标:https://www.shufadict.com - 书法字典。 分析 先看优化前的效果,可以看到主要是js下载太耗时。两个js加起来要3 阅读全文

posted @ 2020-06-06 12:09 前端风云志 阅读(747) 评论(0) 推荐(0)

2018年3月18日

Android 隐藏系统状态栏

摘要: 通常的做法是这样的: 此方法大多数情况都能奏效,但是遇到Drawerlayout就歇菜了。目前还没有找到解决办法。 阅读全文

posted @ 2018-03-18 20:43 前端风云志 阅读(4193) 评论(1) 推荐(1)

2017年8月21日

IOS应用内购(一)内购的种类

摘要: Glossary IAP - In App Purchase, 应用内购。 内购种类 consumable - 可消费的,比如游戏中的金币,金币可以购买游戏道具或者装备,这个金币是可以消费的,用完之后可以再购买。 non-consumable - 不可消费的,一次购买,永久生效,比如去广告,解锁游戏 阅读全文

posted @ 2017-08-21 21:35 前端风云志 阅读(1468) 评论(0) 推荐(1)

2016年10月6日

Android获取View对应的Bitmap

摘要: 我的应用里面有一个需求,将一个画面分享出去,这个画面底层是一个View,所以首先要把这个View转换成Bitmap,然后在分享这个bitmap即可。话不多说,直接上代码。 有个地方需要注意一下:就是//Draw background的代码不能省略,否则生成的图片背景就是黑色的了。 == == 阅读全文

posted @ 2016-10-06 14:00 前端风云志 阅读(9066) 评论(0) 推荐(0)

2016年9月10日

Android按需添加Google Play服务

摘要: 以前无论使用何种Google Play服务,都是直接在gradle文件中引用一个库。 这直接导致放法数超过了65535,后来发现从6.5版本以后是可以按需引用的,如下: 第一个是广告库,第二个是使用Google账号登陆用的授权库,第三个是Google Cloud相关库。这样应用程序会瘦身很多。 各种 阅读全文

posted @ 2016-09-10 12:50 前端风云志 阅读(15245) 评论(0) 推荐(1)

2016年8月28日

Android自定义View的构造函数

摘要: 自定义View是Android中一个常见的需求,每个自定义的View都需要实现三个基本的构造函数,而这三个构造函数又有两种常见的写法。 第一种 每个构造函数分别调用基类的构造函数,再调用一个公共的初始化方法做额外初始化。 第二种 级联式调用,每一个构造函数调用比它多一个参数的构造函数,最后一个构造函 阅读全文

posted @ 2016-08-28 12:51 前端风云志 阅读(5541) 评论(0) 推荐(0)

2016年1月22日

两个Fragment之间如何传递数据

摘要: FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来。有什么办法? Fragment之间不能直接通信,必须通过Activity来完成,具体步骤。 1. 在FragmentA中定义通信接口,通过该接口向Activity发送数据 阅读全文

posted @ 2016-01-22 16:01 前端风云志 阅读(13045) 评论(0) 推荐(0)

2016年1月21日

SmartImageView

摘要: ==public class SmartImageView extends ImageView { public SmartImageView(Context context) { super(context); } public SmartImageView(... 阅读全文

posted @ 2016-01-21 22:30 前端风云志 阅读(950) 评论(0) 推荐(0)

2016年1月18日

onSingleTapUp()和onSingleTapConfirmed()的区别

摘要: onSingleTapUp() - 在按下并抬起时发生,只要符合这个条件就触发该函数,没有任何附加条件。onSingleTapConfirmed() 同上者,但有附加条件,就是Android会确保单击之后短时间内没有再次单击,才会触发该函数。举个列子,如果监听双击事件:onSingleTapUp()... 阅读全文

posted @ 2016-01-18 20:20 前端风云志 阅读(10283) 评论(0) 推荐(0)

2016年1月12日

Android Fragment add/replace以及backstack

摘要: 无论Fragment以何种方式加入,都不会影响backstack,backstack由addToBackStack函数决定,只有调用了这个函数,才会将Fragment加入返回栈。这个说法其实不太准确,返回栈记录的是Fragment切换的过程,所以加入返回栈的是Transaction,而不是Fragm... 阅读全文

posted @ 2016-01-12 10:48 前端风云志 阅读(3559) 评论(0) 推荐(0)

2015年12月21日

InputStream与InputStreamReader的区别

摘要: InputStream是字节流,多用于读取二进制数据InputStreamReader是字符流,多用于读取文本文件。有不同的编码方式,如utf8等。可以在构造的时候指定编码方式。例如,两者都有一个无参read函数,前者读取一个字节并转换为int(0-255),后者读取一个字符并转换为int(最高两位... 阅读全文

posted @ 2015-12-21 11:02 前端风云志 阅读(3818) 评论(0) 推荐(0)

2015年11月8日

Android手动签名

摘要: 在生成release build时可实现自动签名,所谓手动签名,就是在命令行下完成签名,落实到Android Studio里面,就是在terminal里面做。下面是三个命令,第一个签名,第二个验证,第三个对齐压缩。第三个命令可能会找不到zipalign这个命令,那么可以切换到zipalign所在的目... 阅读全文

posted @ 2015-11-08 16:49 前端风云志 阅读(2749) 评论(0) 推荐(0)

2015年10月30日

使用后台服务数据更新UI

摘要: https://www.websmithing.com/2011/02/01/how-to-update-the-ui-in-an-android-activity-using-data-from-a-background-service/ 阅读全文

posted @ 2015-10-30 10:16 前端风云志 阅读(556) 评论(0) 推荐(0)

2015年10月29日

Perl重命名当前目录下的文件

摘要: 下载的zip包解压后,中文都变成了乱码,就写了个脚本重命名文件。use strict;use warnings;use Cwd;sub main { my $dir = getcwd(); opendir my $DH, $dir or die "Can not open ... 阅读全文

posted @ 2015-10-29 10:18 前端风云志 阅读(2050) 评论(0) 推荐(0)

2015年8月29日

PS 多次剪裁同一图片

摘要: 一个图品里面有两个小图,要分别抠出来。我以前的做法是,先扣一个,重新打开文件,再扣另外一个。今天发现一个简单的办法,不用重新打开文件。就是在扣完第一个的时候,打开历史记录面板,双击打开动作,就可以查看原始图片,再扣另外一个就行了。如果动作面板没有打开,可以在菜单栏中选择窗口-历史记录来开启。== 阅读全文

posted @ 2015-08-29 17:00 前端风云志 阅读(1749) 评论(0) 推荐(0)

2015年8月23日

Win + D 和 Win + M的区别

摘要: 在Windows系统上,Win + D是显示桌面,Win + M是最小化所有窗口,咋一看,这两个快捷键貌似没有区别,但是在某些方面还是有细微的区别。 威力 从威力上来说,Win + D更牛逼,因为显示桌面意味着所有窗口都得消失,但是Win + M则不一定,比如,对于不支持最小化的窗口,Win + M 阅读全文

posted @ 2015-08-23 09:56 前端风云志 阅读(30428) 评论(0) 推荐(6)

2015年8月10日

使用ViwePager显示图片时如何防止内存泄露。

摘要: 内存泄露的检测。1. 在Android Studio中运行你的应用,然后切换到输出窗口的Android tab。2. 尽情的玩耍你的应用,最好各个功能都用到,如果是Viewpager,则多滑动一些页面,观察内存的增长情况。如果是下面这样大致平稳的曲线,就没有内存泄露。如果是下面这样,阶梯状的曲线,基... 阅读全文

posted @ 2015-08-10 14:27 前端风云志 阅读(1581) 评论(0) 推荐(0)

2015年8月8日

onCreateView中加载大位图

摘要: 我的一个Fragment中,加载了一个1024*1024的图片,非常卡。解决办法1. 将图片改为512*5122. 异步加载。final SmartImageView mizige = (SmartImageView)view.findViewById(R.id.mizige); //... 阅读全文

posted @ 2015-08-08 08:57 前端风云志 阅读(814) 评论(0) 推荐(0)

2015年8月5日

在XML drawable中引用自定义颜色

摘要: ==先看一下一个xml drawable文件,这是一个button的样式。可以看到这里好几处用到了颜色,但是都是直接指定颜色值,如果我想引用一个外部颜色,比如定义在values/refs里面的。那该怎么办呢?先在values/refs.xml文件里面定义颜色,如下: #FFFFFF #0... 阅读全文

posted @ 2015-08-05 15:38 前端风云志 阅读(9565) 评论(0) 推荐(0)

2015年7月27日

android:onClick vs setOnClickListener

摘要: 为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数。另一个是直接在代码中添加setOnClickListener函数。两者什么区别呢?以Button控件为例讲解一下。方法一在Xml中添加onClick属性 在代... 阅读全文

posted @ 2015-07-27 14:34 前端风云志 阅读(1366) 评论(0) 推荐(0)

2014年11月23日

【IOS】Target membership

摘要: Target membership是指XCode中,一个文件属于哪一个工程,在XCode左侧的工程面板中选中一个文件,在XCode右侧的属性面板中会显示其Target Membership,如下图。当前的文件AppDelegate.m属于书谱这个Target。Target Membership的一些... 阅读全文

posted @ 2014-11-23 20:26 前端风云志 阅读(15883) 评论(0) 推荐(2)

导航

< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

关注我

前端风云志
点击右上角即可分享
微信分享提示