前端
文章平均质量分 76
zhongjunyao
这个作者很懒,什么都没留下…
展开
-
什么是线程安全和线程不安全
首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用s转载 2017-04-09 15:06:27 · 20809 阅读 · 4 评论 -
JS 中的广度与深度优先遍历
现在有一种类似树的数据结构,但是不存在共同的根节点 root,每一个节点的结构为 {key: 'one', value: '1', children: [...]},都包含 key 和 value,如果存在 children 则内部会存在 n 个和此结构相同的节点,现模拟数据如下图:已知一个 value 如 3-2-1,需要取出该路径上的所有 key,即期望得到 ['three', 'three-...转载 2018-07-05 16:10:14 · 4008 阅读 · 0 评论 -
JS中的arguments参数
在我的博客中,我曾经写过关于函数调用时浏览器每次传递的隐式参数this,今天要讲的是另外一个浏览器传递给函数的隐式参数arguments。在函数调用的时候,浏览器每次都会传递进两个隐式参数:1. 函数的上下文对象this2. 封装实参的对象arguments下面是一个例子:function fun(){ console.log(arguments);}fun('tom',[1,2,3],{...原创 2018-07-05 23:24:14 · 42929 阅读 · 14 评论 -
JS中数据类型的判断( typeof,instanceof,constructor,Object.prototype.toString.call() )
我们在写封装的插件或者函数时,常常用到JS的数据类型判断,典型的案例就是深度拷贝函数用到数据类型判断,这个知识点在面试的时候也是经常考到的一个问题。今天在这里总结一下我个人遇到的可以判断数据类型的几种方式。如果有哪里写的不对还请指点一下小弟,以免文章误导他人。1. typeof关键字console.log(typeof 2); // numberconsole.log...原创 2018-07-12 23:25:12 · 33841 阅读 · 6 评论 -
实现类似JQuery的工具函数slideDown,优化的下拉菜单
今天发现以前写的一个下拉菜单有bug,所以优化了一下,实现类似JQuery的工具函数slideDown,顺便把菜单优化。先说一下,之前的下拉菜单需要优化的地方,由于使用的是css实现定好的高度值,所以每次<li>高度变化,都得更改css。之前采用的是<ul>和<li>标签实现的下拉列表,在这里面当其中一个li标签的高度变得比其他连个高的时候,<ul>...原创 2018-07-13 22:39:24 · 956 阅读 · 0 评论 -
文本单行超出和多行超出显示省略号
<!--单行--><p class="p1">这个属性定义溢出元素内容区的内容会如何处理。如果值为 hidden,当点击hidden时,滚动机制关闭,</p><!-- css -->/*单行文本的溢出显示省略号*/.p1{ width: 200px; overflow:hidden; text-overflow:ellipsi...转载 2018-10-25 09:59:44 · 432 阅读 · 0 评论 -
字体图标的使用
在开发中我们经常会使用各种图标,为了节省资源,你可能不会自己设计自己需要的图标,这时候你可已通过http://www.iconfont.cn/这个网站来获取自己需要的图标,在开发过程中,我们会使用在线图标链接,易于增加所需图标或者删除多余的图标或者你可以直接下载代码下载的代码包含Unicode,Font class ,Symbol,三种引用方式的示例,我们使用Font class,...原创 2018-11-11 11:17:40 · 14844 阅读 · 1 评论 -
控制指定的页面刷新
当我们在某个页面进行操作之后,我们希望指定的那个页面能刷新,以小程序为例子我们需要设置一个全局的变量,作为刷新的列表,存储指定刷新的页面的路由,然后定义两个全局的函数,setReflash和execReflash;setReflash将当前页面的上一頁的路由或者指定的多个路由添加到刷新列表中:// 设置返回上一页要刷新提示// callback function 要回调执行的函数//...原创 2018-11-11 14:07:37 · 4345 阅读 · 0 评论 -
VUE+Webpack搭建开发环境
项目地址:https://github.com/zhongjunyao/VUE-Webpack.git1.首先打开开发工具 Visual Studio Code ,将文件夹添加到项目,可以看到文件夹VUE-Webpack已经添加到项目中了从控制台中进入文件夹 VUE-Webpack 中,执行 命令 npm initPS D:\workspace\VUE-Webpack&g...原创 2018-11-25 17:38:49 · 2139 阅读 · 3 评论 -
开发注意事项
开发时我们总会忽视元素出现的顺序或者是显示的要求,下面记录一下我个人的一些开发经验:1. 开发时,需要进行判断显示的元素,总是事先隐藏,有数据才让元素显示;2. 任何需要请求数据的页面,总会需要一个数据为空的提示;3. 建议任何情况下都不要让变量为 null ,尽量给予 空字符串 或者 0 ;4. 需要进行数据对比时尽量使用 === 符号,这样更加严谨;5. 一般有可能为空值的...原创 2018-08-15 16:03:26 · 234 阅读 · 0 评论 -
数组去重需要注意的点
帮一个人修改一下代码,发现了去重需要注意的一个小知识点。这是代码:// 练习:数组去重,注意当删除一个相同元素时,后面元素向前递进一位;// 这时要重复当次j循环,所以j需要减1,j++之后就是j当次的循环let arr = [1,1,1,1,2,3,3,3,3,2,8,5,6,1,5,8];for(let i=0,v;v=arr[i];i++){ for(let j=i+1,u;u...原创 2018-07-05 15:52:13 · 232 阅读 · 0 评论 -
仿制element-ui的Collapse 折叠面板组件
几天没有更新博客了,最近有点忙,没时间写博客,今天偷下懒,写写博客。废话也不多说,说正题,这个折叠面板组件的实现使用了transition过渡动画和css3的变量,使用原生的JS实现逻辑,用到部分ES6的语法,现在本人也还没搞得太透彻,理解明白了,会写一些关于ES7及其更新的语法的博客。这是效果图:这个控件比较简单,我就直接上代码了,不明白的朋友可以在评论里留言,我会改进的;或者是有大神指点我一二...原创 2018-07-04 21:59:52 · 9455 阅读 · 1 评论 -
仿制element-ui的轮播头图原生实现,使用了部分es6语法,包含promise
仿制element-ui的轮播头图原生实现,使用了部分es6语法,包含promise,还有添加删除样式类的原生实现,事件添加和删除的原生实现兼容了ie8,选择器获取DOM元素的方法实现。原创 2018-06-29 11:57:14 · 1318 阅读 · 2 评论 -
声明提前
之前写代码时常常没有注意这个声明提前,今天有时间就理顺一下声明提前,虽然不常用,但是理顺有助理解别人的代码。声明提前: 1. 变量声明提前使用var关键字声明的变量会在所有代码执行之前,被声明,但是未赋值console.log('a:',a);var a = 10;console.log('b:',b);b = 20;console.log(b);console.log(windo...原创 2018-06-30 01:03:51 · 1205 阅读 · 0 评论 -
JS中的变量作用域
作用域说明:指一个变量的作用范围1.全局作用域(1) 全局作用域在页面打开时被创建,页面关闭时被销毁(2) 编写在script标签中的变量和函数,作用域为全局,在页面的任意位置都可以访问到(3) 在全局作用域中有全局对象window,代表一个浏览器窗口,由浏览器创建,可以直接调用(4) 全局作用域中声明的变量和函数会作为window对象的属性和方法保存var a = 10;b = 20;fun...原创 2018-06-30 11:59:07 · 18233 阅读 · 1 评论 -
JS中的this指向问题,以及this的作用
this是作用域中的参数,因为常用到,在这里做一下总结。1. this的概述(1) 解析器在每次调用函数的时候都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this;(2) this指向的是一个对象,函数执行的上下文对象;(3) 在这里我把this理解为一个操作这个函数执行的句柄(操作者),就像一个人(this)拿着锯子(函数)去锯木头(函数执行的上下文对象功能);(4) 根据函数的调用方...原创 2018-06-30 16:09:41 · 6542 阅读 · 0 评论 -
JS 创建类(同类对象)的方式
工作中常常用到一整类别的对象,相信很多人也和我一样对众多的创建类的方式感到有些混乱,今天做一下总结:1. 工厂模式function person(name,){ var obj = {}; obj.name = name; obj.do = function(){ console.log(this.name) }; return obj;}...原创 2018-06-30 18:39:05 · 3199 阅读 · 0 评论 -
当max-width与width(带!important)同时修饰一个元素时,其权重哪一个大
今天在研究css的选择器权重问题时,发现了一个让我很困惑的问题,不废话,直接上代码<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>测试权重</title> <style> .father{ max-width:256px...原创 2018-06-25 20:54:01 · 5329 阅读 · 1 评论 -
全选,反选小demo
记录一下全选反选的小知识点,非常简单上代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>简单的全选,全不选,反选,提交练习</title></head><bo原创 2018-07-02 11:03:09 · 464 阅读 · 0 评论 -
仿制element-ui的Rate评分组件
试着仿制了一下element-ui的Rate评分组件,废话不多说,直接上效果图上代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Rate评分,带辅助文字</title><style&am原创 2018-07-02 14:33:21 · 3382 阅读 · 3 评论 -
关于原生js书写的下拉菜单(含原生编写的添加和删除样式类)
之前写的文章不知道什么原因,代码是乱的,在这里重新写一下。今天又是收获的一天,编写了一个简单下拉菜单的demo,至于其组件化就交给你们自己啦,毕竟学习是自己的事。废话不多说,这个是git地址,https://github.com/zhongjunyao/menu.git 效果图:代码:html代码:<!DOCTYPE html><html><head> ...原创 2018-06-27 22:06:33 · 925 阅读 · 0 评论 -
移动端界面适配 —— 多方案解析
本文章转载自https://www.jianshu.com/p/3b45aa981e77在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一款的新机型。对于移动端适配,不同的公司、不同的团队有不同的解决方案。我在项目中也用了一部分解决方案,也看到了一些解决方案,对比下,总结一些自己的理解,希望对各位有帮助,找到最适合你们项目的适配...转载 2019-01-28 21:47:18 · 505 阅读 · 0 评论