随笔分类 -  javascript

摘要:静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delphi、C#等。 动态语言(弱类型语言) 动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型 阅读全文
posted @ 2019-12-09 10:20 keepLearnLL 阅读(548) 评论(0) 推荐(0)
摘要:1.return false:相当于终止符,干了3件事,阻止默认行为,取消事件冒泡,以及停止回调执行立即返回; 2.return:停止回调执行立即返回; 3.return true:相当于执行符,继续执行下面语句。 阅读全文
posted @ 2019-08-16 15:15 keepLearnLL 阅读(1969) 评论(0) 推荐(0)
摘要:应用场景1:使用Symbol来作为对象属性名(key) 在这之前,我们通常定义或访问对象的属性时都是使用字符串,比如下面的代码: let obj = { abc: 123, "hello": "world" } obj["abc"] // 123 obj["hello"] // 'world' 而现 阅读全文
posted @ 2019-05-06 10:20 keepLearnLL 阅读(2128) 评论(0) 推荐(2)
摘要:相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说一下进程。本质上来说,两个名词都是 CPU 工作时间片的一个描述。 进程描述了 CPU 在运行指令及加载和保存上下文所需的时间,放在应用上来说就代表了一个程序。线程是进程中的更小单位,描述了执行一段指令所 阅读全文
posted @ 2019-02-27 14:47 keepLearnLL 阅读(422) 评论(0) 推荐(0)
摘要:for, forEach, map 都可以用来循环。 for, forEach, map 这三个方法本质上是不同的。 for 是循环的基础语法,可以有 for...in, foo...of,for(let i = 0; i < len; i++) 等。在for循环中可以使用 continue, br 阅读全文
posted @ 2019-02-19 19:05 keepLearnLL 阅读(125) 评论(0) 推荐(0)
摘要:通常禁止使用setTimeout的情况: 1.不能用于模拟异步,有的人不熟悉异步流程,而使用setTimeout伪实现,比如设置一个 setTimeout 来等待函数执行完毕,正确做法是使用回调来处理异步。 阅读全文
posted @ 2019-02-18 09:14 keepLearnLL 阅读(566) 评论(0) 推荐(0)
摘要:一、回调函数的使用场景: 二、异步编程的4种方法 回调函数(维基百科): 回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码。 在JavaScript中函数也是对象的一种,同样对象可以作为参数传递给函数,因此函数也可以作为参数传递给另外一个 阅读全文
posted @ 2019-01-30 17:48 keepLearnLL 阅读(2695) 评论(0) 推荐(0)
摘要:最近几年,我们可以选择的Javascript组件的生态系统一直在稳步增长。虽然陡增的选择范围是极好的,但当组件混合匹配使用时就会出现很尴尬的局面。开发新手们会很快发现不是所有组件都能彼此“和平相处”。 为了解决这个问题,两种竞争关系的模块规范AMD和CommonJS问世了,它们允许开发者遵照一种约定 阅读全文
posted @ 2017-11-22 20:14 keepLearnLL 阅读(682) 评论(0) 推荐(0)
摘要:在研究react和webpack的时候,经常看到在js文件中出现require,还有import,这两个都是为了JS模块化编程使用。CSS的是@import 1.ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。 Require是CommonJS的语法, 阅读全文
posted @ 2017-11-17 20:23 keepLearnLL 阅读(44343) 评论(3) 推荐(2)
摘要:document.oncontextmenu=new Function("event.returnValue=false"); document.onselectstart=new Function("event.returnValue=false"); 阅读全文
posted @ 2017-10-17 10:53 keepLearnLL 阅读(195) 评论(0) 推荐(0)
摘要:this有四种情况! 1)当在函数调用的时候指向widow 2)当方法调用的时候指向调用对象 3)当用apply和call上下文调用的时候指向传入的第一个参数 4)构造函数调用指向实例对象 函数里的this可以分为两种来记忆: 如果是使用new方式创建对象,this指向新建的那个对象; 如果只是普通 阅读全文
posted @ 2017-10-13 16:05 keepLearnLL 阅读(188) 评论(0) 推荐(0)
摘要:不能输出正确结果,因为循环中setTimeout接受的参数函数通过闭包访问变量i。javascript运行环境为单线程,setTimeout注册的函数需要等待线程空闲才能执行,此时for循环已经结束,i值为5.五个定时输出都是5 修改方法:将setTimeout放在函数立即调用表达式中,将i值作为参 阅读全文
posted @ 2017-10-12 22:40 keepLearnLL 阅读(110) 评论(0) 推荐(0)
摘要:function cat(){}cat.prototype={ food:"fish", say: function(){ alert("I love "+this.food); }}var blackCat = new cat;blackCat.say(); 但是如果我们有一个对象whiteDog 阅读全文
posted @ 2017-09-10 10:15 keepLearnLL 阅读(143) 评论(0) 推荐(0)