JavaScript
文章平均质量分 95
JavaScript(不含ES6)学习与实践
codingOrange
学而不思则罔,思而不学则殆。
展开
-
JS中的自定义事件和模拟事件
在 JS 中模拟事件指的是模拟 JS 中定义的一些事件,例如点击事件,键盘事件等。自定义事件指的是创建一个自定义的,JS 中之前没有的事件。接下来分别说一下创建这两种事件的方法。创建自定义事件创建自定义事件可以使用 Event 和 CustomEvent 两种方法,接下来分别做一下介绍。1. 利用 EventMDN EventEvent 用法event = new Event(...原创 2020-04-21 14:22:44 · 390 阅读 · 0 评论 -
聊一聊 JS 中的循环引用及问题
聊一聊 JS 中的循环引用本文主要从 JS 中为什么会出现循环引用,垃圾回收策略中引用计数为什么有很大的问题,以及循环引用时的对象在使用 JSON.stringify 时为什么会报错,怎样解决这个问题简单谈谈自己的一些理解。1. 什么是循环引用当对象 1 中的某个属性指向对象 2,对象 2 中的某个属性指向对象 1 就会出现循环引用,(当然不止这一种情况,不过原理是一样的)下面通过代码和内存...原创 2020-01-09 21:14:21 · 663 阅读 · 0 评论 -
JS 中的闭包
简单理解 JS 中的闭包原文链接: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html注:本文是阮一峰老师写的,通俗易懂,理解闭包很好的文章。在此此基础上加了自己的一些理解,阮一峰老师由于最后两道思考题没有给出答案,所以在本文中给了比较详细的解释。闭包(closure)是Javascript语...原创 2020-01-08 10:57:41 · 177 阅读 · 0 评论 -
从两个角度理解为什么 JS 中没有函数重载
两个角度理解为什么 JS 中没有函数重载函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。但是在 JS 如果不通过一些方法是无法实现重载的,可以从以下两个角度去理解。1. 方法签名方法签名指的是函数...原创 2020-01-06 11:59:52 · 195 阅读 · 0 评论 -
图文结合深入理解JS中的this值
文章目录Js 中奇妙的this值1. 初探this2. this指向总结2.1 普通函数调用2.2 对象的方法调用2.3 构造函数调用2.4 利用call,apply,bind方法调用函数Js 中奇妙的this值在 JS 中最常见的莫过于函数了,在函数(方法)中 this 的出现频率特别高,那么 this 到底是什么呢,今天就和大家一起学习总结一下 JS 中的 this。1. 初探this...原创 2019-10-25 20:20:35 · 625 阅读 · 0 评论 -
聊一聊JS输出为[object,object]是怎么回事
JS输出为[object object]今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑惑,查阅了相关资料后搞清楚了其中的原因。在解释之前,由于有些小伙伴可能还没有接触过ES6,所以先说一下上面用到的ES6的一些特性:const: 声明一个常量Symbol:JS中的第7种数据类型,表示独一无二的...原创 2019-10-15 11:11:02 · 4232 阅读 · 0 评论 -
这几种JavaScript语法不要轻易使用,容易出事
文章目录12种不宜使用的JavaScript语法1. ==2. with3. eval4. continue5. switch 贯穿6. 单行的块结构7. ++和--8. 位运算符9. function语句10. 基本数据类型的包装对象11. new语句12. void12种不宜使用的JavaScript语法这几天,我在读《Javascript语言精粹》。这本书很薄,100多页,正好假日里翻...转载 2019-10-11 19:14:53 · 169 阅读 · 0 评论 -
深入理解this原理(JavaScript)
JavaScript中this的原理原文链接:http://www.ruanyifeng.com/blog/2018/06/javascript-this.html一、问题的由来学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。> var obj = {> foo: function () {}> };> > ...转载 2019-10-11 17:51:00 · 517 阅读 · 0 评论 -
前端经典电子书分享
分享一波前端经典电子书,授人以鱼不如授人以渔,哦,这是两条鱼的故事。不唠了,上干货:https://pan.baidu.com/s/1NmuwPpfIgH83C5pBXWjFIg点击README.md中的前端学习资料即可。...原创 2019-08-31 17:55:22 · 595 阅读 · 0 评论 -
两个实例轻松理解js函数预解析
js函数预解析例子1:先上一段代码,看看能不能写出最终的执行结果. console.log(a); var a = 1; console.log(a); function a(){ console.log(2); } var a = 3; console.log(a); function a(){ ...原创 2019-08-28 15:05:35 · 716 阅读 · 5 评论 -
js中正则表达式的易错点
js的正则表达式总是匹配第一个满足匹配的,比如下面这个例子var str = "aaab";var pattern = /a+?b/;console.log(pattern.exec(str));程序输出:“aaab”虽然上面加了问号是非贪婪匹配,但是正则表达式的字符匹配是从满足条件的第一个字符开始匹配的,故从第一个a开始匹配,又因为一定要和最后一个b进行匹配,故前面三个a必须全...原创 2019-08-17 22:19:31 · 268 阅读 · 0 评论 -
var和let部分浅析
ES6中新增了let命令,用于声明变量,但所声明的变量只在let命令的代码块内有效。举个例子: var a = []; for(var i=0;i<10;i++){ a[i] = function(){ console.log(i); }; } a[6]();//输出10使用var声明的变量是全局...原创 2019-08-13 08:28:40 · 101 阅读 · 0 评论 -
js中的对象知识总结
文章目录:1. 比较两个对象是否相等1. 比较两个对象是否相等通过===运算符,只有在两个变量指向同一个对象时才返回true,否则返回false。要想比较两个对象中的内容是否相等,需要利用遍历对象的方法,如下所示:function equalObjs(obj1, obj2){ for(var p in obj1){ if(obj1[p] !== obj2[p]){ //只要有一个不...原创 2019-08-14 08:53:47 · 174 阅读 · 0 评论 -
js基础知识总结
* JavaScript简称:JS* JS分三个部分:* 1 ECMAScript标准---基础的语法* 2 DOM Document Object Model 文档对象模型* 3 BOM Browser Object Model 浏览器对象模型* 什么是JS?* 是一门脚本语言* 是一门解释性语言* 是一门弱类型语言* 是一门基于对象的语言* 是一门动态类型的语言* *...原创 2019-06-05 14:48:31 · 239 阅读 · 0 评论 -
js对象属性的查询(点运算符和方括号运算符的区别)
js中可以通过点(.)和方括号([ ])运算符来获取属性的值。运算符的左侧应该是一个表达式,它返回一个对象。对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于方括号 ([ ])来说方括号内必须是一个字符串(准确地说应该是一个字符串或者是一个可以转换为字符串的值)。当通过点(.)运算符访问对象的属性时,属性名是用一个标识符来表示的。标识符直接出现的程序中,它不是数据类型,因此是无法...原创 2019-06-07 21:27:00 · 2016 阅读 · 0 评论 -
数组知识总结(js)
js数组知识注意点:声明空数组时,和c语言中的不同|js|c||–|--||var arr=[ ] //合法,声明一个空数组,数组长度为0;|int a[];//错误因为在c中声明一个数组不仅要指定类型还要指定数组的长度|下面这个性质是c语言中所没有的,给空数组每赋一次值,数组的长度加1。var arr =[];arr[arr.length]=1;//此时arr.length=0...原创 2019-06-08 17:19:30 · 185 阅读 · 0 评论 -
函数知识总结(js)
c语言中函数的形参必须定义类型,而且形参的个数和实参的个数必须相等。但是在js中形参不需要定义,在函数定义的小括号中只需要写形参名就可以了不用写var关键字,而且在函数调用时传入的实参可以和形参的个数不同。更新中…本人是个小白,如有错误欢迎指正…...原创 2019-06-08 21:44:50 · 117 阅读 · 0 评论 -
类型,值,变量知识总结(js)
变量分为全局变量和局部变量在函数外部由var定义的变量称为全局变量,变量的作用范围是整个程序,只有当程序运行完后(在浏览器中一般指关掉这个页面)才会释放其内存空间。不用var声明的变量称为隐式全局变量,注意在函数内部不用var定义的变量也是隐式全局变量。注意用var声明的变量(无论是全局变量还是局部变量)是不能用delete删除的,但是隐式全局变量是可以利用delete删除的。fu...原创 2019-06-09 20:01:34 · 253 阅读 · 0 评论 -
表达式和运算符知识总结(js)
表达式(expression)是JavaScript中的一个短语,JavaScript解释器会将其计算(evaluate)出一个结果。语句是js的整句或命令,表达式计算出一个值,而语句用来执行使某件事发生。程序中的常量是最简单的一类表达式变量名也是一种简单的表达式,它的值就是赋值给变量的值。复杂的表达式是由简单的表达式组成。比如数组访问表达式是由一个数组名表达式,左方括号,整数表达式,右...原创 2019-06-10 10:03:39 · 455 阅读 · 0 评论 -
语句知识总结(js)
函数声明语句和函数定义表达式有什么不同首先看一下函数声明语句和函数定义表达式的例子,表达式会返回一个值(可以理解成返回了函数内部的代码),而语句就是js中的一整句。 var f = function(x){return(x+1);} //function(x){return(x+1);}是一个函数定义 //表达式,它会返回一个值然后赋值给f变量 写成function后面加上函数名也是可以...原创 2019-06-10 10:56:36 · 196 阅读 · 0 评论 -
JS中原始值和引用值分析
JS中变量中两种类型的值:原始值,引用值原始值是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。var x = 1; //1就是一个原始值,变量x中存放的就是原始值本身1引用值是存储在堆中的对象,这个时候变量中存放的是对象的指针,指向对象的内存空间。(注意引用值是一个对象,并不是一个指针)var o = {}; //{}这个对象是一个引用值,注意...原创 2019-06-16 20:33:41 · 1098 阅读 · 0 评论 -
运算符副作用总结与例子(js)
js中运算符具有副作用,简单地说就是前后表达式的值会相互影响,比如c = (a++) + a;这条语句中含有三个子表达式,我们用三个符号来表示,即exp1cexp2a++exp3a我们知道在js总是严格按照从左到右的顺序计算子表达式,即先计算exp1再计算exp2,再计算exp3.计算子表达式的结果如下exp1undefinede...原创 2019-06-05 11:29:17 · 1950 阅读 · 0 评论