前端
vincent_hahaha
haha ha
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】
先解释一下什么是“自由变量”。在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下代码块:var x = 10;function fn(){ var b = 20; console.log(x + b);// 这里的x在这里就是一个自由变量}如上程序中,在调用fn()函数时,函数体中第6行。取b的值就直...原创 2017-10-14 18:09:00 · 165 阅读 · 0 评论 -
深入理解javascript原型和闭包(15)——闭包
前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。第一,函数作为返回值function fn(){ var max = 10; return function bar(x){ if(x >...原创 2017-10-14 18:34:00 · 139 阅读 · 0 评论 -
深入理解javascript原型和闭包(17)——补this
本文对《深入理解javascript原型和闭包(10)——this》一篇进行补充,原文链接:http://www.cnblogs.com/wangfupeng1988/p/3988422.html原文中,讲解了在javascript中this的各个情况,写完之后发现还落下一种情况,就此补充。原文中this的其中一种情况是构造函数的,具体的内容可以参考原文,此处不再赘述。要补充的内容是,在...原创 2017-10-14 18:57:00 · 150 阅读 · 0 评论 -
深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。再说明之前,咱们先用简单的语言来概括一下这两个的区别。00 上下文环境:可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着,但确实实实在在存在的,因为所有的变量都在里面存储着,要不然咱们定义的变量在哪里存?另外,对于函数来说,上下文环...原创 2017-10-14 19:07:00 · 155 阅读 · 0 评论 -
深入理解javascript原型和闭包(2)——函数和对象的关系
上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。var fn = function () { };console.log(fn instanceof Object); // true对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一...原创 2017-09-14 15:18:00 · 174 阅读 · 0 评论 -
深入理解javascript原型和闭包(3)——prototype原型
既typeof之后的另一位老朋友!prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你也可以对函数进行自定义属性。不用等咱们去试验,javascript自己就先做了表率,人家就默认...原创 2017-09-14 15:38:00 · 133 阅读 · 0 评论 -
深入理解javascript原型和闭包(4)——隐式原型
注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。上节已经提到,每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto__,可成为隐式原型。这个__proto__是一个隐藏的属性,javascript不希望开...原创 2017-09-15 09:12:00 · 195 阅读 · 0 评论 -
深入理解javascript原型和闭包(5)——instanceof
又介绍一个老朋友——instanceof。对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。这个时候就需要用到instanceof。例如:function Foo(){}var...原创 2017-09-16 11:38:00 · 157 阅读 · 0 评论 -
深入理解javascript原型和闭包(6)——继承
为何用“继承”为标题,而不用“原型链”?原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现这个不同。javascript中的继承是通过原型链来体现的。先看几句代码function Foo(){}var f1 ...原创 2017-09-19 18:09:00 · 138 阅读 · 0 评论 -
深入理解javascript原型和闭包(7)——原型的灵活性
在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。首先,对象属性可以随时改动。对象或者函数,刚开始new出来之后,可能啥属性都没有。但是你可以这会儿加一个,过一会儿在加两个,非常灵活。在j...原创 2017-09-19 19:38:00 · 140 阅读 · 0 评论 -
深入理解javascript原型和闭包(8)——简述【执行上下文】上
什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码:第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。在一段js代码拿过来真正一句一句运行之前,浏览器已经做了一些“准备工作”,其中就包括对变量的声明,而不是赋值。变量赋值...原创 2017-09-20 10:07:00 · 115 阅读 · 0 评论 -
深入理解javascript原型和闭包(9)——简述【执行上下文】下
继续上一篇文章的内容。上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据:变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值;如果在函数中,除了以上数据之外,还会有其他数据。先看以下代码:以上代码展示了在函数体的语句执行之前,arguments变量和函数的参数都已经被赋值。从这里可以看出,函数每被调用一次,都会...原创 2017-09-20 10:18:00 · 154 阅读 · 0 评论 -
深入理解javascript原型和闭包(10)——this
接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。其实,this的取值,分四种情况。我们来挨个看一下。在此再强调一遍一个非常重要的知识点:在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。因为this的取值是执行上下文环境的一部分,每次...原创 2017-09-20 14:35:00 · 181 阅读 · 0 评论 -
深入理解javascript原型和闭包(12)——简介【作用域】
提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句:var i = 10;if(i > 1){ var name = 'username';}console.log(name); //username再比如for语句:for(var i = 0; i < ...原创 2017-09-21 09:05:00 · 163 阅读 · 0 评论 -
深入理解javascript原型和闭包(1)——一切都是对象
“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。当然,也不是所有的都是对象,值类型就不是对象。首先咱们还是先看看javascript中一个常用的运算符——typeof。typeof应该算是咱们的老朋友,还有谁没用过它?typeof函数输出的一共有几种类型,在此列出:function show(x) { console.log(typeo...原创 2017-07-28 10:43:00 · 191 阅读 · 0 评论 -
vue-cli4入门
首先卸载vue-cli2命令:npm uninstall vue-cli -g,如果安装的时候用的cnpm 那么卸载的时候也需要用cnpm,npm uninstall vue-cli -g确认vue-cli已经成功卸载了。vue -V安装vue/cli4使用淘宝镜像安装:cnpm install -g @vue/cli 。@vue/cli表示vue3版本,而@vue-cli表示vue2的...原创 2019-12-15 19:05:43 · 1243 阅读 · 0 评论 -
如果项目中如何添加或卸载某些组件
如果没有安装vue-router,如何进行单独安装基于webpack模板创建项目的语法是:vue init webpack test1例如我们在test1项目中,安装ESLint,语法是npm install eslint --dev --save,--dev表示在开发环境中添加这个组件,--save表示在生产环境下添加这个组件卸载ESLint,语法是npm uninstall eslint...原创 2019-12-15 16:16:43 · 803 阅读 · 0 评论 -
地址栏中的#是什么意思
我们在开发vue时,地址栏中会出现#,如下图所示:当我们点击跳转A页面时:那么地址栏中的#到底是什么意思?如何去掉?路由的两种显示模式Hash模式这个模式下地址栏中包含#。主要减少前台到后台的访问次数。当地址栏中的内容没有发生改变时,浏览器就不会发送请求到后台。这样就可以减少后台的访问次数。缺点是,当微信支付时,或者分享URL时,#就无法满足需求了,因为URL中的参数中时不允许出现...原创 2019-12-15 15:25:40 · 6631 阅读 · 0 评论 -
vue入门
初始化项目目录结构components文件夹中存放的都是组件route中存放的index.js是做路由控制的。在components下面的HelloWorld.vue就是默认的页面。新建一个vue页面在component目录下新建一个first.vue文件,内容如下:<template> <div> first.vue &l...原创 2019-11-24 23:32:53 · 152 阅读 · 0 评论 -
创建vue-cli项目
vue init webpack packageName ,其中webpack表示所选择的模板,通常情况下使用webpack作为模板需要注意的是:Install vue-router?(Y/n)是否安装vue-router,这时官方的路由,大多数情况下都使用,输入“y”回车就可以了Use ESLint to lint your code?(Y/n)是否使用ESLint管理代码,ESLint...原创 2019-11-10 11:12:34 · 165 阅读 · 0 评论 -
npm命令
cnpm -v查看cnpm版本cnpm root -g可以查看全局安装的文件夹位置.sudo cnpm install -g vue-cli全局安装Vue脚手架,安装成功之后可以使用vue -V查看vue的版本号npm 选项:-S,–save表示安装包信息将加入到dependencies(生产阶段的依赖)-D,–dev安装包信息将加入到dev-Dependencies(开发阶段的依赖)...原创 2019-11-09 15:21:30 · 137 阅读 · 0 评论 -
实时更新数据的jQuery图表插件DEMO演示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><m...原创 2016-10-12 23:04:00 · 223 阅读 · 0 评论 -
CSS控制的内容超过容器宽度后显示省略号
text-overflow:ellipsis属性在FF中是没有效果的。同时应用: text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 实现了所想要得到的溢出文本显示省略号效果text-overflow是一个比较特殊的属性,在CSS手册中,这个属性是这样定义的:语法:text-overflow : clip | el...原创 2015-03-31 14:59:00 · 179 阅读 · 0 评论 -
css为什么要清除浮动
DIV1宽度为100px,DIV2宽度为50px,如果上级DIV层的宽度大于DIV1+DIV2的宽度,DIV2设置浮动属性float:left,DIV2会像流水一样,自动显示在DIV1的右侧,如果上级DIV层的宽度等于或者小于DIV1+DIV2的宽度,那么,DIV2层就会被挤到DIV1的下方.如果DIV1设置了清除属性,DIV2就不会流动到DIV1的后面,而是直接显...原创 2015-03-31 14:59:00 · 116 阅读 · 1 评论 -
css3中-moz、-ms、-webkit各什么意思
-moz代表firefox浏览器私有属性-ms代表IE浏览器私有属性-webkit代表chrome、safari私有属性原创 2015-03-31 14:59:00 · 216 阅读 · 0 评论 -
用CSS美化被鼠标选中的文字的样式
CSS的作用就是用来美化网页的内容或者结构层次。这我们都知道,不是吗?随着CSS技 术的不断革新升级,我们获得了更多的控制样式的能力。一个不是那么众所周知的技术就是我们可以在浏览器里美化被选择的文字的样式。Windows自身提供 的是一种很难看的墨绿色的颜色,而苹果电脑上提供的是浅绿色。火狐浏览器,IE9,Opera和谷歌浏览器允许我们自定义被选择文字的颜色。让我来展示给 你看: 1...原创 2015-03-31 14:59:00 · 172 阅读 · 0 评论 -
SyntaxHighlighter使用方法
原名:SyntaxHighlighter,是一款用于web页面的代码着色工具,可以用来着色多种语言,可以是 HTML,CSS,Javascript,还可以是C,JAVA等编程语言。最早见于Yahoo的YUI,当时还属于自由软件,最近打开官方网站发现已被 goolge收编。它可以在网页中对各种程序源代码语法进行加亮显示。支持当前流行的各种编程语言:C#、CSS、C++、Delphi、Java、Ja...原创 2015-03-31 14:59:00 · 194 阅读 · 0 评论 -
CSS实现段落首行缩进、1.5倍行距、左右对齐
.text-content{ font-size : 15px ;text-indent : 30px ; /*段落首行缩进,text-indent的值为font-size的2倍,相当于缩进2个汉字*/line-height : 22px ; /*line-height的值为font-size的1.5倍,即1.5倍行距,使用line-heigh...原创 2015-03-31 14:59:00 · 1907 阅读 · 0 评论 -
js实现当前导航菜单高亮显示
增加用户体验度,增加网页的易用性和美观度,往往需要把当前导航菜单以特殊方式显示,通常是高亮显示或有不同于其它菜单的背景,有两种方法可以实现, 第一种是用纯css来实现,二是用js辅助css来实现,两个种方法都比较简单,相对而言js更简单些,下面介绍用js来实现的方法:首页假设我们的导航代码是这样写的:<divid="navi"><ul><li>&l...原创 2015-03-31 14:58:00 · 870 阅读 · 0 评论
分享