前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >20181028_ARTS_week18

20181028_ARTS_week18

作者头像
Bob.Chen
发布于 2018-12-04 07:11:04
发布于 2018-12-04 07:11:04
59800
代码可运行
举报
运行总次数:0
代码可运行

第十八周,算法题 Implement strStr(),看了一篇介绍 HTML5 开源视频播放组件的文章,介绍了 ES6 中模板字符串的用法,分享了这周在做 angularJS 相关重构的时候对 angularJS 的一些想法。

Algorithm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * Implement strStr()
 * https://leetcode.com/problems/implement-strstr/
 * 
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */
var strStr = function (haystack, needle) {
    var step = needle.length;
    var len = haystack.length;
    var i = 0;

    // when needle is an empty string
    // if (step == 0) {
    //     return 0;
    // }

    while (step <= len) {
        if (needle == haystack.substring(i, i+step)) {
            return i
        }
        i += 1;
        len -= 1;
    }

    return -1
};

console.log(strStr("hello", "ll"))
console.log(strStr("aaaaa", "bba"))

比较简单的题目,第一反应直接可以用自带的 indexOf 之类的去解决。除此之外就可以用个 while 循环一个个比一下就搞定了。

Review

5 Open Source HTML5 Video Players for 2018

https://blog.bitsrc.io/5-open-source-html5-video-players-for-2018-38fa85932afb

文章介绍了 5 个开源基于 HTML 的视频播放组件。

随着移动网络速度的提高和资费的降低,视频的需求也越来越旺盛,作者先是说了几个用开源视频播放组件的好处,基本上都是大家知道的,比如免费。之后介绍了 5 个播放组件,分别是 Plyr, Video.js, Afterglow, MediaElement.js, jPlayer。

这里面我只用过 jPlayer,感觉还不错,挺简单的。

Tip

介绍一下 ES6 里面的模板字符串。

以前我们要组合一些字符串是这样做的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var firstName = 'Jake';
var lastName = 'Rawr';
console.log('My name is ' + firstName + ' ' + lastName);
// My name is Jake Rawr**

非常蛋疼,偏偏经常要组合字符串。

ES6 后可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var firstName = 'Jake';
var lastName = 'Rawr';
console.log(`My name is ${firstName} ${lastName}`);
// My name is Jake Rawr

然后这个里面还可以做点运算:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var val1 = 1, val2 = 2;
console.log(`${val1} is ${val1 < val2 ? 'less than': 'greater than'} ${val2}`)
// 1 is less than 2

我个人不建议把复杂运算放这里做,代码看起来很奇怪,不优雅。

来源 https://www.jstips.co/en/javascript/template-strings/

Share

公司以前有个老项目使用 angularJS (angularJS 不是 Angular,也就是 1.0)做的,这周准备对它进行一些重构,改为用 Vue 来做。做之前当然需要去了解下 angularJS 的东东。

现在网上对 angularJS 可以说是『鄙视』了,什么老啊,旧啊,性能不好啊,工程化不完善啊等等。站在今天来看,跟今天的很多前端框架比,angularJS 的确已经落伍。

但要知道 angularJS 大概是 2008 年推出的,几乎是 node 差不多时间。站在那时候看 angularJS 还是非常先进的,组件,模板,依赖倒转,自动更新……这些在当时可以说是杀手级的特性了。

只是时代变迁,可能是开发的时候缺乏 node 之类的编译打包工具,所以 angularJS 写出的页面非常臃肿,一堆 js 文件以及模板要做异步加载,非常影响性能和打开速度。

很多东西都是演化来的,在今天我们站在制高点怼天怼地怼框架的时候,想想框架出来的时机,以及大环境,这是前端最好的时代,也是前端最坏的时代。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
20180708_ARTS_week02
Add Two Numbers You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Bob.Chen
2018/08/02
4030
20181007_ARTS_week15
这个写的比较杂乱,因为一开始思路就是想着比较大小,然后构造新的节点,赋值,找下一个,做成单链表。因为要比较是否是 null 以及实际值,所以比较条件写的有点复杂,因为要构造一个新的单链表,空间复杂度也比较高。
Bob.Chen
2018/10/11
3410
一文搞懂ES6的Map,Map和Object如何选择
Map是ECMAScript 6 的新增特性,是一种新的集合类型,为javascript带来了真正的键/值存储机 制。
javascript艺术
2022/11/22
1K0
一文搞懂ES6的Map,Map和Object如何选择
兼容IE8的视频播放
目前的很多网站为了加强宣传效果增加了视频,通过video标签很容易实现视频的播放功能,但是万恶的IE8不支持html5的视频播放。虽然如此,我们也有解决的办法,flowplayer提供了一套兼容IE8的视频播放插件,请看下面的例子。
OECOM
2020/07/02
1.3K0
uni-app开发一个小视频应用(二)
“ 前情回顾uni-app开发一个小视频应用(一)上篇文章,我们已经实现了首页的头部导航栏组件、底部的tabBar导航栏组件、中间的视频列表组件以及视频列表组件中的视频播放组件,传入视频列表渲染后已经可以上下滑动进行视频切换和播放,接下来我们将完成首页的剩余部分,左侧信息栏组件、右侧图标栏组件,以及完善视频切换动画、播放控制等功能。 ” 一 创建左侧信息栏组件 左侧的信息栏组件,主要分三块: 作者名、视频标题名、音乐名。这个左侧信息栏信息是和当前播放视频相关联的,所以应该在循环视频列表的时候,将左侧信息
腾讯NEXT学位
2019/10/21
1.7K0
uni-app开发一个小视频应用(二)
42个实用的JavaScript优化技巧
我一直喜欢报纸之类的东西,可以在较短的时间内提供足够的信息。在这里,我为前端开发优化创建了一个新的学习列表。
前端达人
2021/05/11
12K0
Dimple在左耳听风ARTS打卡(十)
题图:2019法网的纳达尔。小编是纳达尔多年的球迷了,从他第一个法网冠军开始就是小迷弟,尤其是在红土的统治力,以及他体现出来的意志力等等,是我学习的榜样。10个火枪手杯在手,期待今年再次捧杯,让组委会头疼一个特殊的仪式去吧,哈哈。
程序员小跃
2019/12/27
4480
看完这几道 JavaScript 面试题,让你与考官对答如流(中)
IIFE或立即调用的函数表达式是在创建或声明后将被调用或执行的函数。 创建IIFE的语法是,将function (){}包裹在在括号()内,然后再用另一个括号()调用它,如:(function(){})()
前端小智@大迁世界
2022/06/15
2.1K0
javascript迭代器和生成器(一)
在看过官方文档和《你不知道的javascript 中卷》之后,觉得还是应该写点什么总结一下,但是这个涉及到的点很多,感觉不太能够在单篇文章的篇幅之内能描述完全。
砖业洋__
2023/05/06
1710
javascript迭代器和生成器(一)
53. Vue名称案例-使用computed计算属性
前面在写名称拼接案例的时候使用了keyup监听文本框,还使用了watch来监听数据变化,那么本篇章来使用computed计算属性来监听实现。
Devops海洋的渔夫
2022/01/17
5880
53. Vue名称案例-使用computed计算属性
vue-video-player 视频播放器使用以及多视频宫格实例参考
在安装过程中,npm会下载vue-video-player的最新版本并安装到项目中。安装完成后,我们就可以在项目中使用vue-video-player组件了。
鳄鱼儿
2024/05/21
3.8K0
vue-video-player 视频播放器使用以及多视频宫格实例参考
禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming禅与 JavaScript 编程艺术
Zen and The Art of JavaScript Programming
一个会写诗的程序员
2018/08/17
1.2K0
Airbnb JavaScript Style Guide
const foo = 1; let bar = foo; bar = 9; console.log(foo, bar); // => 1, 9
天天_哥
2018/09/29
1.5K0
LeetCode刷题(二) JavaScript
通过递归实现:判断 list1 和 list2 那个链表的头结点的值更小,然后递归下去决定下一个添加到结果的节点,当两个链表中有为空时,递归结束。
赤蓝紫
2023/01/05
3170
20180803_ARTS_week06
这个是个比较不好的解法,就是像题目介绍里面那样先把这个『之』字形给做出来,然后再逐行读成字符串,但是通过这个比较好帮助我们理解这个题目。
Bob.Chen
2018/08/09
3830
JavaScript 中如何进行异步编程
JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。
江米小枣
2020/06/16
8130
JavaScript 中如何进行异步编程
举例说明了十大ES6功能
虽然ES6规范不是最近才发布,但我认为很多开发人员仍然不太熟悉。 主要原因是在规范发布之后,Web浏览器的支持可能很差。 目前,规范发布已经超过2年了,现在很多浏览器对ES6支持良好。 即使您(或您的客户)不使用最新版本的Web浏览器,也可以使用转换器(如Babel),在应用程序的构建过程中将ES6转换为ES5。 这意味着要向前迈出一步,学习ES6。
frontoldman
2019/09/02
7280
JavaScript ES6  让我们写得少,做得多
JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读。它允许您编写更少的代码并执行更多操作。 ES6 向我们介绍了许多强大的功能,如箭头函数,模板字符串,对象结构,模块等,让我们来看看。
桃翁
2018/10/18
8290
JavaScript 高级程序设计(第 4 版)- 集合引用类型
定型数组同样使用数组缓冲来存储数据,而数组缓冲无法调整大小,故以下方法不适用于定型数组
Cellinlab
2023/05/17
7090
videojs插件使用「建议收藏」
使用整理:使用主要针对于移动端视频播放,考虑的点:视频显示适配手机宽度;适配定义样式;在微信端,安卓、ios视频空间控件不同,定制等会自动被微信视频控件覆盖;播放过程中定制暂停/播放按钮事件等;播放结束后定制重播、下一个视频事件,读秒播放下一个视频
全栈程序员站长
2022/11/01
10.5K0
相关推荐
20180708_ARTS_week02
更多 >
加入讨论
的问答专区 >
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    本文部分代码块支持一键运行,欢迎体验
    本文部分代码块支持一键运行,欢迎体验