💼 松宝写代码个人年终总结:未来可期

2021-02-12
阅读 6 分钟
1.9k
作者: 松宝写代码 | songEagle |saucxs日期:2021月2日前天和昨天没有更新「每日一题」,啪啪打脸了。其实这段时间在写年终总结,实在抱歉。有些小伙伴不知道我那3个昵称的含义:昵称:songEagle(取自松树的song,Eagle中文意思鹰,雄鹰,寓意着可以像雄鹰一样翱翔)。昵称:saucxs(sau取自我大学时候的学校缩写Shen...
封面图

[每日一题]面试官问:for in和for of 的区别和原理?

2021-01-09
阅读 3 分钟
2.8k
关注「松宝写代码」,精选好文,每日一题​时间永远是自己的每分每秒也都是为自己的将来铺垫和增值作者:saucxs | songEagle一、前言2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等。本文是「每日一题」第 7 题:[每日一题]面试官问:for in和for of 的区别和原理?往期「每...
封面图

[每日一题]面试官问:Async/Await 如何通过同步的方式实现异步?

2021-01-05
阅读 5 分钟
3.9k
关注「松宝写代码」,精选好文,每日一题​时间永远是自己的每分每秒也都是为自己的将来铺垫和增值作者:saucxs | songEagle一、前言2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等。本文是「每日一题」第 6 题:面试官问:Async/Await 如何通过同步的方式实现异步?往期「每...

「每日一题」面试官问你对Promise的理解?可能是需要你能手动实现各个特性

2020-12-26
阅读 4 分钟
3.5k
关注公众号「松宝写代码」,精选好文,每日一题加入我们一起学习,day day up作者:saucxs | songEagle来源:原创一、前言2020.12.23日刚立的flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等。往期「每日一题」:第2道[「[每日一题]ES6中为什么要使用Symbol?」]([链接]第1道「一道面试题是如何引...

【JavaScript系列】类型判断的4种基本方法,研究jquery的type方法,空对象的检测方法,类数组对象

2019-08-24
阅读 9 分钟
1.1k
类型判断有时候真的头疼,但是一旦熟练使用就会觉得不过如此。初级的,会判断数字和字符串。中级的,会判断数组和对象。进阶的,会判断日期,正则,错误类型。高级的,会判断plainObject,空对象,window对象等等。

【JavaScript系列】动态绑定事件方法:(1)jquery的on方法;(2)html元素绑定

2019-07-24
阅读 5 分钟
7.6k
当使用js或jQuery动态创建元素(例如append,appendChildren),再用on(事件, function(){...})或addEventListener监听事件时,事件并不会触发,因为传统的$('.selector').click()只能监听html初始的对象,对于动态加载的操作,需要在加载后给他的操作行为绑定方法。

【javascript系列】时间复杂度和空间复杂度

2019-07-23
阅读 4 分钟
5.3k
时间复杂度和空间复杂度,我们在大学里的算法与数据结构课程中已经学习过,这回根据项目工作中整理一下,这个估计只是一个粗略的估计分析,并不是一个准确的估计分析。

【JavaScript系列】vue项目中实现滚动条(具体视窗口的滚动条)操作:(1)置底,(2)置于上次停留的位置

2019-07-05
阅读 3 分钟
10k
之前写了一个happyChat的项目,主要是想学习一下socketIO的使用。然后最近在给happyChat做前端优化和升级。发现第一版做的很low。

【设计方案】设计方案系列--如何设计移动端高清方案

2019-07-05
阅读 4 分钟
1.4k
一、前言 有时候需要前端做到移动端高清显示,1、面对开发移动端H5页面,2、面对不同分辨率的手机,3、面对不同屏幕尺寸的手机。 二、视觉稿 前端开发正常是,视觉的小哥哥给我们psd或者导出的skech文件,这个就是视觉稿,然后前端开始写结构,写元素,调整,优化等等。 对于移动端开发而言,达到页面高清的效果,视觉稿...

【V8引擎】浅析Chrome V8引擎中的垃圾回收机制和内存泄露优化策略

2019-06-26
阅读 6 分钟
4k
V8的垃圾回收机制:JavaScript使用垃圾回收机制来自动管理内存。垃圾回收是一把双刃剑,其好处是可以大幅简化程序的内存管理代码,降低程序员的负担,减少因 长时间运转而带来的内存泄露问题。

JavaScript系列--八种【数组去重】方法的总结

2019-06-21
阅读 6 分钟
3.3k
思路:双层循环方法,使用的是循环嵌套,外层是arr,里层是res,如果arr[i]的值等于res[j]的值,则跳出当前循环,如果都不等于,说明元素唯一,这时候j的值等于res的长度,根据这个判断,将值添加res中。

计算机基础--http的基础整理和巩固

2019-06-21
阅读 5 分钟
1.1k
一、前言 主要包括:1、http基础:TCP/IP,TCP协议,IP协议,DNS协议,URI与URL; 2、http协议:http报文,http方法,http状态码,常见问题 名词解释: (1)HTTP(HyperText Transfer Protocol)超文本传输协议 (2)URL(Uniform Resource Locator)统一资源定位符 (3)URI(Uniform Resource Identifer)统一资源标...

方案设计--如何看待前端框架选型 ?

2019-06-20
阅读 2 分钟
2.8k
对于前端团队,可以实现企业受益最大化要点。 一、技术选型的策略 1、保证产品质量 (1)功能稳健:网页不白屏,不错位,不卡死;操作正常;数据精准。 (2)体验优秀:加载体验,交互体验,视觉体验,无障碍访问。 2、降低人力成本 (1)降低前期开发成本; (2)降低后期维护成本。 二、前端开发模式选择 开发模式:1...

JavaScript系列--浅析原型链与继承

2019-06-14
阅读 7 分钟
2k
接口继承只继承方法签名,而实现继承则继承实际的方法。由于js中方法没有签名,在ECMAScript中无法实现接口继承。ECMAScript只支持实现继承,而且其 实现继承 主要是依靠原型链来实现的。

javascript系列--this指向和apply,call,bind三者的区别

2019-06-10
阅读 5 分钟
3.1k
this指向,apply,call,bind的区别是一个经典的面试问题,同时在项目中会经常使用到的原生的js方法。同时也是ES5中的众多坑的一个。ES6中可能会极大的避免了this产生的错误,有时候需要维护老的项目还是有必要了解一下this的指向和apply,call,bind三者的区别。

JavaScript 系列--JavaScript一些奇淫技巧的实现方法(三)数字取整,数组求和

2019-06-06
阅读 3 分钟
1.1k
一、前言 简短的sleep函数,获取时间戳:[链接] 数字格式化 1234567890 --> 1,234,567,890;argruments 对象(类数组)转换成数组: [链接] 今天我们来介绍一下数字取整,数组求和。 二、数字取整 1、普通版 const a = parseInt(2.33333);parseInt()方法是解析一个字符串参数,并返回一个指定基数的整数。这个就是我们...

JavaScript 系列--JavaScript一些奇淫技巧的实现方法(二)数字格式化;类数组转数组

2019-06-06
阅读 4 分钟
2.1k
一、前言 之前写了一篇文章:JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳 [链接] 介绍了sleep函数和获取时间戳的方法。接下来我们来介绍数字格式化1234567890 --> 1,234,567,890 二、数字格式化 1234567890 --> 1,234,567,890 1、普通版 {代码...} 优点:自我感觉比网上...

JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳

2019-05-31
阅读 4 分钟
1.9k
有些东西很好用,但是你未必知道;有些东西你可能用过,但是你未必知道原理。实现一个目的有多种途径,俗话说,条条大路通罗马。发散一下大家的思维以及拓展一下知识面。

javascript系列--javascript深入理解--作用域,作用域链,闭包的面试题解

2019-05-29
阅读 4 分钟
1.5k
一、概要 作用域和作用域链是js中非常重要的特性,关系到理解整个js体系,闭包是对作用域的延伸,其他语言也有闭包的特性。 那什么是作用域?作用域指的是一个变量和函数的作用范围。 1、js中函数内声明的所有变量在函数体内始终是可见的; 2、在ES6中有全局作用域和局部作用域,但是没有没有块级作用域(catch只在其内...

javascript深入理解-从作用域链理解闭包

2019-05-27
阅读 4 分钟
1.5k
那么什么是自由变量?自由变量就是在函数中使用,但既不是函数参数arguments,也不是函数的局部变量的变量,就是说另外一个函数作用域中的变量。

插件系列--简单水印(watermark-dom)和算法水印(频域方式图片合并)实现

2019-05-24
阅读 12 分钟
7.9k
插件github地址:[链接] 有详细的使用步骤,可以参考,不会用请留言,感觉可以,请给个星星。 一、简单水印(watermark-dom) 阿里巴巴内网的不可见水印用的是什么算法?据说月饼事件截图的那位员工也被开除了? 下面的只是简单的加一个很浅的水印,实现起来很容易。 1、看看水印的效果 随便找一个网站,比如就找掘金的...

javascript系列--javascript深入浅出图解作用域链和闭包

2019-05-23
阅读 4 分钟
1.2k
一、概要 对于闭包的定义(红宝书P178):闭包就是指有权访问另外一个函数的作用域中的变量的函数。 关键点: 1、闭包是一个函数 2、能够访问另外一个函数作用域中的变量 二、闭包特性 对于闭包有下面三个特性: 1、闭包可以访问当前函数以外的变量 function getOuter(){ var date = '815'; function getDate(str){ {代...

songEagle开发系列:如何科学有效的让博客文章实时保存

2019-05-23
阅读 3 分钟
1.3k
如何实现文章的实时保存?一般写文章的写博客的网站都会有这个功能点,这样保证了用户在不小心退出的情况下数据的保存下来,这样的交互比较符合用户的使用心理学。对于用户来说这是一个非常实用的功能,作为一个博客来说,有这个还是不错的。哈哈^_^

javascript系列--javascript引擎执行的过程的理解--语法分析和预编译阶段

2019-05-21
阅读 5 分钟
783
js是一种非常灵活的语言,理解js引擎的执行过程对于我们学习js是非常有必要的。看了很多这方便文章,大多数是讲的是事件循环(event loop)或者变量提升的等,并没有全面分析其中的过程。所以觉得把这个js执行的详细过程整理一下,帮助更好的理解js。

javascript系列--Object.assign实现浅拷贝的原理以及实现

2019-05-18
阅读 8 分钟
1.3k
一、前言 之前在前面一篇学习了赋值,浅拷贝和深拷贝。介绍了这三者的相关知识和区别。 传送门:[链接] 本文会介绍浅拷贝Object.assign()的实现原理,然后咱们试着实现一个浅拷贝。 二、浅拷贝Object.assign() 什么是浅拷贝?浅拷贝就是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。 浅拷贝Object.assign...

JavaScript系列--浅析JavaScript解析赋值、浅拷贝和深拷贝的区别

2019-05-16
阅读 5 分钟
1.3k
一、赋值(Copy) 赋值是将某一数值或对象赋给某个变量的过程,分为: 1、基本数据类型:赋值,赋值之后两个变量互不影响 2、引用数据类型:赋址,两个变量具有相同的引用,指向同一个对象,相互之间有影响 对基本类型进行赋值操作,两个变量互不影响。 {代码...} 对引用类型进行赋址操作,两个变量指向同一个对象,改变...

JavaScript系列--类型判断的4种基本方法,研究jquery的type方法,空对象的检测方法,类数组对象

2019-05-16
阅读 9 分钟
1.6k
类型判断有时候真的头疼,但是一旦熟练使用就会觉得不过如此。初级的,会判断数字和字符串。中级的,会判断数组和对象。进阶的,会判断日期,正则,错误类型。高级的,会判断plainObject,空对象,window对象等等。

工具系列--简单水印(watermark-dom)和算法水印(频域方式图片合并)实现

2019-05-16
阅读 12 分钟
4.7k
一、简单水印(watermark-dom) 阿里巴巴内网的不可见水印用的是什么算法?据说月饼事件截图的那位员工也被开除了? 下面的只是简单的加一个很浅的水印,实现起来很容易。 1、看看水印的效果 随便找一个网站,比如就找掘金的个人首页, (1)F12检查模式, (2)在console里粘贴下面的代码, {代码...} (3)改变一下页...

javascript系列--正则表达式学习(二)位置匹配

2019-05-15
阅读 5 分钟
1.5k
文章首发于sau交流学习社区 一、前言 正则表达式是匹配模式,要么是匹配字符,要么匹配位置。 其实在开发中很少用到匹配位置,本篇文章主要包含: 二、什么是位置 位置:相邻字符之间的位置。 三、如何匹配位置 在ES5中,共有6个锚:^, $, b, B, (?=p), (?!p) 可视化形式: RegExp:/^$bB(?=a)(?!b)/g 3.1 ^和$ ^(脱字符...

javascript数组的常用算法解析

2019-03-18
阅读 5 分钟
960
一、不改变原数组,返回新数组(字符串) 1、concat() 连接两个或者多个数组,两边的原始数组都不会变化,返回的是被连接数组的一个副本。 2、join() 把数组中所有的元素放入到一个字符串中,返回字符串 {代码...} 3、slice() 从开始到结束(不包括结束)选择数组的一部分浅拷贝到一个新数组 {代码...} 4、map() 创建一个...