整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

7个JavaScript 中非常实用的单行代码技术

7个JavaScript 中非常实用的单行代码技术

avaScript 是 Web 开发最重要的技术之一。

今天我将与大家分享7个非常实用的单行代码技术,希望对大家有所帮助。

01、数组重组

在使用需要一定程度随机化的算法时,我们通常会发现洗牌数组是一项非常必要的技能。下面的代码片段以 O(n log n) 的复杂度对数组进行混洗。

const shuffleArray=(arr)=> arr.sort(()=> Math.random() - 0.5);
// Testing
const arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(shuffleArray(arr));

02、复制到剪贴板

在 Web 应用程序中,复制到剪贴板因其对用户的便利性而迅速普及。

const copyToClipboard=(text)=>
  navigator.clipboard?.writeText && navigator.clipboard.writeText(text);
// Testing
copyToClipboard("Hello World!");

注意:根据 caniuse,该方法适用于 93.08% 的全球用户。所以,检查用户的浏览器是否支持 API 是必要的。要支持所有用户,我们可以使用输入并复制其内容。

03、数组去重

每种语言都有自己的 Hash List 实现,在 JavaScript 中称为 Set。我们可以使用设置数据结构轻松地从数组中获取唯一元素。

const getUnique=(arr)=> [...new Set(arr)];
// Testing
const arr=[1, 1, 2, 3, 3, 4, 4, 4, 5, 5];
console.log(getUnique(arr));

04、检测暗模式

随着暗模式的日益流行,如果用户在他们的设备中启用了暗模式,那么将我们的应用程序切换到暗模式是有必要的。

const isDarkMode=()=>
  window.matchMedia &&
  window.matchMedia("(prefers-color-scheme: dark)").matches;
// Testing
console.log(isDarkMode());

根据 caniuse,matchMedia 的支持率为 97.19%。

05、滚动到顶部

初学者经常发现自己在正确地将元素滚动到视图中时遇到了困难。滚动元素最简单的方法是使用 scrollIntoView 方法。添加行为:“平滑”以获得平滑的滚动动画。

const scrollToTop=(element)=>
  element.scrollIntoView({ behavior: "smooth", block: "start" });

06、滚动到底部

就像 scrollToTop 方法一样,scrollToBottom 方法可以使用 scrollIntoView 方法轻松实现,只需将块值切换到 end。

const scrollToBottom=(element)=>
  element.scrollIntoView({ behavior: "smooth", block: "end" });

07、生成随机颜色

我们的应用程序是否依赖随机颜色生成?别再看了,下面的代码片段让你明白了!

0月31日上午,新闻大厦发布厅,新京报APP上线发布仪式,中共北京市委常委、宣传部部长杜飞进致辞。新京报记者 侯少卿 摄

新京报社长宋甘澍在上线仪式上宣讲。新京报记者 侯少卿 摄

读者和新京报社员工一起启动APP上线。新京报记者 侯少卿 摄

新京报讯(记者 倪伟)10月31日,全新的新京报App正式登陆各大手机应用市场。作为一款专注优质原创新闻内容的资讯类App,它的上线也标志着新京报在媒体转型道路上又向前迈进一大步。

15年来,新京报始终秉承着“品质源于责任”的理念,不断调整,不畏改变。新京报App是新媒体战略转型与媒体融合的又一成果。据介绍,这款App由专业媒体人打造、通过专业视角鉴评,7×24小时不间断地产出新闻,旨在打造立足北京、辐射全国、面向世界,在全国有影响力的原创新闻资讯类平台。

给用户最有价值的新闻

据了解,此次上线的新京报App设有16个频道123个栏目,涵盖时政、社会、北京、观点、财经、文化、娱乐、体育、汽车、房产、教育、生活、科技等多个领域,未来每天将提供近千条优质新闻内容。

北京市委常委、宣传部部长杜飞进表示,目前,新京报日均原创内容超过350条,这正是传统媒体进军新媒体领域的最大优势。新京报客户端的上线,是全市媒体改革和融合发展战略的重要一环。

“新京报会继续坚持新闻专业主义用心制作,提供真实、有趣、有情怀的内容。在海量信息的时代,按照‘有限度阅读’的产品设计理念,将用户从信息过载当中释放出来。”新京报社长宋甘澍介绍。

为此,全新的新京报App将推出“头版故事”、“今天5分钟热词”等功能。前者是编辑部根据专业的新闻判断,将一天之内优秀而有价值的新闻经过视觉精编,在App端刚一打开时就直接呈现给用户。后者则是根据用户的阅读兴趣,以算法为基础的专业人工推荐的新闻集合。方便人们在有限的时间内看到一天内自己最感兴趣的精选新闻。

一款“不同凡想”的App

此次上线对新京报来说,“变”的是传播形式与传播渠道,是顺应移动互联网时代的信息传播大势,“不变”的是新京报对社会责任的坚守,以及对“好新闻”的无止境追求。

据介绍,在产品研发之始,他们就力图打造一款“不同凡想”的App。为实现这个目标,新京报甚至对自身结构和工作流程也进行了深度调整。“最终我们撤销了新媒体部,整体全员转型到APP端,其实这也可以看出新京报转战移动端的决心。”宋甘澍表示。

据了解,此次上线的新京报App的特色可概括为“两个强调”和“三个优先”。

强调新闻专业主义的内容品质,即“即时新闻更快,深度调查更深,独家报道更独”。强调专业化的表达,倡导“限量供给、精品推荐”。

三个优先:移动传播优先,未来新京报的所有原创内容稿件都会优先发送到APP端;视频表达优先,融合“我们视频”和新京报动新闻在视频领域已有优势,将借此次App上线,继续丰富产品形态;用户体验优先,基于用户画像技术,围绕新京报APP用户群进行有针对性地推送。实现App产品的内容、技术的双驱动。

“新京报App的推出是北京市新闻改革大局中重要的一环。下一步App还会适时推出‘新闻+’业务,主要是‘+政务’、‘+民生’、‘+服务’,让新闻传播的效应最大化,更好地贴近社会、融入社会,忠实记录社会的成长、大力促进社会的美好。”宋甘澍谈到对App未来的构想,如是说。

杜飞进表示,北京媒体融合发展规划中,目标是打造“1+2+17+N”的传播矩阵,包括一个融媒体指挥调度系统、两个市级新媒体平台、17家区级融媒体中心和若干“京字号”新媒体平台。新京报App正是两个市级新媒体平台之一,要充分发挥主流媒体示范引领作用,强化责任担当,真正唱响主旋律、弘扬正能量。

专业人做专业事

专业人做专业事,新京报App的内容是由新京报专业媒体人打造。技术方面,也秉承了专业理念。为这款App提供了全程技术支持,从前端到后台,均采取了业界主流的技术架构和顶尖的技术标准。

据技术团队介绍,新京报客户端 Android系统整体数据请求架构上采用Retrofit+Rxjava+Okhttp进行二次封装,结构清晰,逻辑一目了然,界面上利用单一Activity配合多Fragment实现界面风格的统一管理,对网络图片采用Glide进行本地缓存与解析。除此之外,加载网页更加安全高效,用户可自定义视图及界面,享受新闻阅读趣味。

iOS系统的架构,是WebView内容区与Native扩展区的结合。同时引入了HybridPageKit的通用内容页实现框架,其基于ReusableNestingScrollview、WKWebViewExtension等技术。

未来,新京报将坚持以用户为中心理念,紧随传播格局的变化、技术的更新,不断改进完善APP功能、提升优化用户体验。新京报的目标,以App为抓手和平台,带动、促进媒体的深度融合,促进自身的顺利转型。

新京报记者倪伟 编辑 李玉坤

#34;夏哉ke":quangneng.com/5046/

要手写一个微信小程序的底层框架,你需要掌握一系列的前端和后端技术。下面是一个概览,包括一些必须掌握的通用技术:

  1. JavaScript(JS)
  2. 熟练掌握JS是开发小程序的基础,包括ES6+的新特性,如箭头函数、Promise、async/await等。
  3. WXML(微信小程序标记语言)
  4. 类似于HTML,是构建小程序页面的标记语言,需要熟悉其语法和组件。
  5. WXSS(微信小程序样式表)
  6. 类似于CSS,用于美化小程序的页面,需要掌握其选择器、布局和样式继承等特性。
  7. 小程序框架
  8. 微信小程序的官方框架提供了丰富的API和组件,包括视图层和逻辑层的分离,状态管理等。
  9. 后端技术
  10. Node.js:可能会用于开发服务器端,处理小程序的数据请求。
  11. 数据库技术:如MySQL、MongoDB等,用于存储和管理数据。
  12. 网络请求
  13. 掌握使用微信小程序的wx.request进行网络请求,以及处理HTTP请求的细节。
  14. 前端构建工具
  15. 如Webpack、Gulp等,用于优化和打包小程序的代码。
  16. 版本控制
  17. 使用Git进行代码的版本控制和管理。
  18. 性能优化
  19. 掌握前端性能优化的基本策略,如代码分割、懒加载、缓存使用等。
  20. 安全知识
  21. 了解Web安全的基本概念,如XSS、CSRF等,并采取相应的防护措施。
  22. 用户体验(UX)和用户界面(UI)设计
  23. 虽然不直接涉及编码,但对于创建用户友好的小程序至关重要。
  24. 模块化和组件化思维
  25. 将小程序的代码分割为可复用的模块和组件,提高开发效率和代码的可维护性。
  26. 跨平台开发能力
  27. 虽然专注于微信小程序,但了解如何将应用拓展到其他平台(如支付宝小程序、百度智能小程序等)也是有益的。

掌握上述技术将有助于你从零开始构建一个微信小程序的底层框架。此外,还需要不断关注微信官方的更新和社区的最新动态,以适应小程序平台的最新发展。

小程序框架有哪些常用组件?

微信小程序框架提供了一系列的常用组件,用于构建用户界面。以下是一些常用的组件:

  1. 视图容器
  2. view:视图容器,类似于HTML中的div。
  3. scroll-view:可滚动视图区域。
  4. swiper:滑块视图容器,用于轮播图等。
  5. 基础内容
  6. text:文本组件,类似于HTML中的span。
  7. rich-text:富文本组件,可以渲染HTML字符串。
  8. 表单组件
  9. button:按钮。
  10. input:输入框。
  11. checkbox:复选框。
  12. radio:单选框。
  13. form:表单,用于提交数据。
  14. 导航
  15. navigator:页面链接,用于跳转到其他页面或小程序。
  16. 媒体组件
  17. image:图片。
  18. audio:音频。
  19. video:视频。
  20. 地图
  21. map:地图组件,用于展示地图和标记点。
  22. 画布
  23. canvas:画布组件,用于绘制图形和动画。
  24. 开放能力
  25. open-data:用于展示微信用户的数据,如用户昵称、头像等。
  26. official-account:公众号组件,用于展示公众号的信息。
  27. 导航栏
  28. navigation-bar:自定义导航栏。
  29. 页面属性
  30. page-container:用于定义页面内容容器。
  31. 标签栏
  32. tab-bar:自定义标签栏。
  33. 对话框
  34. modal:模态对话框。
  35. 进度条
  36. progress:进度条。
  37. 动作面板
  38. action-sheet:动作面板,用于显示一系列动作选项。
  39. 滑动操作
  40. movable-view:可移动的视图容器,通常用于实现拖拽效果。
  41. 通知栏
  42. toast:轻量级提示框,用于显示简短的消息。
  43. loading:加载提示。

这些组件是构建微信小程序用户界面的基础,通过组合使用这些组件,可以实现丰富的功能和界面效果。微信官方文档中提供了每个组件的详细属性和用法,建议在开发过程中参考官方文档以获取最新的信息和指导。