深入理解 JavaScript 系列—什么是作用域
几乎所有编程语言最基本的功能之一,简单的说,作用域控制着变量与函数的可见性以及生命周期。那么问题来了:
- 变量存储在哪?
- 怎么找到变量?
这些问题就需要一套良好的规则来存储和查找变量,而这种规则被称之为作用域。
但是,究竟在哪里并且怎么设置这些作用域的规则呢?
我们学习作用域的方式就是将这个过程模拟成几个人物之间的对话。那么,由谁进行这场对话呢?
演员表
- 引擎
从头到尾负责整个 Javascript 程序的编译及执行过程。
几乎所有编程语言最基本的功能之一,简单的说,作用域控制着变量与函数的可见性以及生命周期。那么问题来了:
我们学习作用域的方式就是将这个过程模拟成几个人物之间的对话。那么,由谁进行这场对话呢?
从头到尾负责整个 Javascript 程序的编译及执行过程。
新手在使用Ubuntu的时候可能在升级时感觉很慢,如果这样他就需要换一个适合自己的源了。
下面我就简单的说一下怎样换源。
在终端里输入 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup (表示备份列表)
再输入 sudo gedit /etc/apt/sources.list
你就能看到源列表了,把你看到的都删除然后粘贴上适合你的源
源,自己找一个适合自己的
1 | sudo vi /etc/apt/sources.list |
每当问到 VueJS 响应式原理,大家可能都会脱口而出“Vue 通过 Object.defineProperty 方法把 data 对象的全部属性转化成 getter/setter,当属性被访问或修改时通知变化”。然而,其内部深层的响应式原理可能很多人都没有完全理解,网络上关于其响应式原理的文章质量也是参差不齐,大多是贴个代码加段注释了事。本文将会从一个非常简单的例子出发,一步一步分析响应式原理的具体实现思路。
首先,我们定义一个数据对象,就以王者荣耀里面的其中一个英雄为例子:
1 | const hero = { |
我们定义了这个英雄的生命值为 3000,IQ 为 150。但是现在还不知道他是谁,不过这不重要,只需要知道这个英雄将会贯穿我们整篇文章,而我们的目的就是通过这个英雄的属性,知道这个英雄是谁。
现在我们可以通过 hero.health 和 hero.IQ 直接读写这个英雄对应的属性值。但是,当这个英雄的属性被读取或修改时,我们并不知情。那么应该如何做才能够让英雄主动告诉我们,他的属性被修改了呢?这时候就需要借助 Object.defineProperty 的力量了。
从大学到现在,接触前端已经有几年了,感想方面,就是对于程序员而言,想要提高自己的技术水平和编写易于阅读和维护的代码,我觉得不能每天都是平庸的写代码,更要去推敲,去摸索和优化代码,总结当中的技巧,积极听取别人的建议,这样自己的技术水平会提高的更快。那么今天,我在这里就分享一下关于 javascript 方面的写作的实用技巧和建议,这些技巧和建议是我平常在开发项目上会用到的,希望能让大家学到知识,更希望能起到一个交流意见的作用,也就是说大家有什么好的技巧或者建议,欢迎分享,或者觉得我的想法存在什么问题,欢迎指出!
1 | [...new Set([2, "12", 2, 12, 1, 2, 1, 6, 12, 13, 6])]; |
关于对象的深浅拷贝,我个人见解就是有一下几点:
做开发也有三年了,从代码小白到今天一直是顺风顺水,今年6月份转战来到西安,自己天真的以为在这里可以大刀阔斧的大干一番,没想到坎坷才刚刚开始。
面试了好多家都被没能通过,理论基础差导致要么公司开的薪水达不到自己的要求,要么直接没音讯,这让我郁闷了好几天,自己在那琢磨在上家公司的时候,既能开发web,又能开发app,对于新技术也能迅速上手,怎么就差的连工作都找不上,真的是说不出的失落……
一个成功的男人背后都有一个伟大的女人这句话说的一点都没错,反正我是信了。我们家灰灰在我郁闷的那几天就一直开导我。确实是有舍必有得,有高峰就有低谷,现在我需要的是补充我的基础知识,在基础知识中挖掘编程的核心思想,是时候该重新学习!真正的学习!领悟技术!接纳技术!
在这里感谢,那些拒绝我的面试官,给了我重新认识自己的机会。感谢我们家灰灰,在我最无助的时候支持我、鼓励我。