JS
文章平均质量分 70
earth_small_ma
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LHS与RHS查询(已完结)
LHS与RHS查询什么是LHS与RHS查询 如果查找的目的是对变量进行赋值,那么就会使用LHS 查询;如果目的是获取变量的值,就会使用RHS 查询考虑以下代码: console.log(a);其中对a 的引用是一个RHS 引用,因为这里a 并没有赋予任何值。相应地,需要查找并取得a 的值,这样才能将值传递给console.log(..)相比之下,例如:...原创 2018-06-24 21:15:43 · 8581 阅读 · 0 评论 -
delete操作符
delete操作符delete操作符的作用其用来删除对象属性或数组元素例如: var obj = { name: '德洛丽丝' } console.log(obj.name);//'德洛丽丝' delete obj.name; console.log(obj.name);//undefined var ar...原创 2018-07-03 19:11:48 · 818 阅读 · 0 评论 -
复杂情况的this指向
复杂情况的this指向复杂情况的this指向——是指当函数同时满足‘this指向谁’中所述的多个调用情况时,this指向谁?其实,更确切的讲,这主要取决于这些调用情况的优先级。因此本文主要讨论这些调用情况的优先级开门见山吧!优先级构造器调用模式(new) > call/apply调用模式 > 方法调用模式 > 函数调用模式示例 functio...原创 2018-07-16 23:03:43 · 172 阅读 · 0 评论 -
预编译及函数作用域练习题(已完结)
预编译及函数作用域练习题练习一 a = 100; function demo(e){ function e(){} arguments[0] = 2; console.log(e); if(a){ var b = 123; function c(){} ...原创 2018-06-28 19:15:13 · 1084 阅读 · 0 评论 -
属性描述符(已完结)
属性描述符属性描述符(或者说‘数据描述符’)用于描述对象中属性的一些特性——value(即指属性值,没错——属性值也属于属性描述符)、writable、enumerable、configurable(其实属性描述符不止这些,这儿仅说说常见的一些)当我们创建一个普通属性时,这三个属性描述符都会使用默认值——true设置属性描述符设置属性描述符——或者说给对象添加一个新属性或修改已...原创 2018-07-23 22:20:00 · 1161 阅读 · 1 评论 -
数组与对象的判断
数组与对象的判断本文主要讲解如何判断一个‘typeof’返回值为object的对象是数组还是对象(当然,数组也是对象,但是在实际中往往需要更精确的判断)。其实,重点还是在于理解Object中的toString方法的工作原理下面是精确判断数组与对象的方法通过constructor判断 var arr = []; var obj = {}; consol...原创 2018-07-18 18:48:03 · 267 阅读 · 0 评论 -
原型
原型原型的基本知识什么是原型?在js中,我们创建的每个函数都有一个prototype属性,该属性是一个指针,指向一个对象。而这个prototype属性就是原型(也可以叫原型对象,因为其本身是一个对象)原型的默认属性首先明白下列知识点:js中的对象都会有一个内置的属性——[[Prototype]](在Chrome、Firefox等浏览器中,其被形象化为__pro...原创 2018-09-06 09:22:11 · 215 阅读 · 0 评论 -
迭代器
迭代器与生成器#迭代器###基本概念可迭代对象(Iterable)在MDN中有这样一句话:为了变成可迭代对象, 一个对象必须实现 @@iterator 方法, 意思是这个对象(或者它原型链上)必须有一个名字是 Symbol.iterator 的属性。该属性对应一个方法,该方法返回一个迭代器简单说来就是——凡是对象本身或其原型链上有Symbol.iterator方法,那么该对象就是一个可...原创 2018-10-11 23:19:50 · 195 阅读 · 0 评论 -
Map
Map与SetMap出现原因在Map之前,我们都用对象来存储键值对。而在对象中,键都会被转换为字符串(无论其之前是什么类型)。即在对象中,我们只能用字符串作为键。为了解决上述问题,Map出现了。在Map中,键与值可以是任意类型,且不会被类型转换Map的使用Map作为一个构造函数,我们首先需要通过它创建一个Map对象:let map = new Map();然后通过下列Map提供的...原创 2018-10-12 22:22:41 · 323 阅读 · 0 评论 -
手写map
手写mapSelfMap.prototype.getHash = function (key) {//计算key的hash值 let hash = 0; if (typeof (key) === 'string') {//String类型hash值 const seed = 31; let len = key.length; for...原创 2018-10-13 22:28:17 · 553 阅读 · 0 评论 -
动态脚本元素实现js的异步加载和执行(已完结)
动态脚本元素实现js的异步加载和执行动态脚本元素实现JS的异步加载和执行即指——通过动态创建添加script标签实现外部js的异步加载与执行该方式的特点‘script.src = “file1.js”’一旦执行完毕,则马上开始异步加载(下载)外部js文件文件的下载与运行都不会阻塞页面,即js的下载与运行都是异步的外部js文件一旦加载完成则立即执行使用外部js中的代码...原创 2018-06-27 19:33:48 · 1611 阅读 · 1 评论 -
this指向谁(已完结)
this指向谁?this指向谁,取决于函数的调用模式在JS中函数的调用模式共四种:函数调用模式——this指向window直接使用函数名调用,或者使用指向函数引用的标识符调用函数即为函数调用模式例如: function test(){ console.log(this); } test()//函数调用模式 var fu...原创 2018-06-27 18:46:34 · 228 阅读 · 0 评论 -
eval与with(已完结)
eval与with除了eval与with的基本用法外,本文着重强调的是通过eval与with欺骗作用域eval(属于window)eval的基本用法JavaScript 中的eval(..) 函数可以接受一个字符串为参数,并将其中的内容视为好像在书写时就存在于程序中这个位置的代码例如: eval('var a = 100;'); function te...原创 2018-06-24 21:18:52 · 555 阅读 · 0 评论 -
闭包(已完结)
闭包通过前面‘词法作用域’、‘LHS与RHS查询’、‘函数声明与变量声明的提升’这三个文案的铺垫,现在我们来谈谈闭包。在此,并不好通过语言去描述闭包,只能通过例子去体会。在讲解闭包前,你需要先知道以下知识:一个函数在执行完毕后,这个函数所创建的词法作用域通常会被销毁(用‘通常’来修饰是因为闭包会保存这个词法作用域,所以从闭包的角度来说,并没有销毁,而且这个作用域还会在需要的时候被使用)...原创 2018-06-24 21:20:27 · 165 阅读 · 0 评论 -
函数声明与变量声明的提升(已完结)
函数声明与变量声明的提升首先申明(已经在其他文案中提及过):引擎会在执行JavaScript代码之前首先对其进行编译。编译阶段中的一部分工作就是找到所有的声明(函数与变量声明),并用合适的作用域将它们关联起来。(这是词法作用域的核心)因此,包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理变量声明提升首先思考下列代码: a = 2; var ...原创 2018-06-24 21:22:32 · 700 阅读 · 0 评论 -
匿名与具名函数、函数声明与函数表达式、立即执行函数(已完结)
匿名与具名函数这属于常识性问题,但是还是有必要说说没有函数名的函数就叫匿名函数,有函数名的函数就叫具名函数 setInterval(function(){//匿名函数 ... },1000); var funA = function(){//匿名函数表达式 ... } var funB = funct...原创 2018-06-24 21:24:11 · 1598 阅读 · 0 评论 -
词法作用域、块作用域(已完结)
词法作用域什么是词法作用域作用域共有两种主要的工作模型——词法作用域和动态作用域,JS采用词法作用域简单地说,词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的由上面对词法作用域的描述可知,词法作用域的创建发生在预编译阶段,因为词法阶段属于预编译的一个过程如果还是感觉不太理解,请考虑下面代码: funct...原创 2018-06-24 21:25:17 · 2098 阅读 · 1 评论 -
包装类、包装类对象、包装类的类型转换功能(已完结)
包装类、包装(类)对象、包装类的类型转换功能本文案的主要目的就是区分:包装类、包装类对象、使用包装类进行类型转换,这三者在叙述前首先区分三者间的关系(因为在复习过程中,发现自己傻傻分不清):1.包装类:JS提供了三个包装类——Boolean、String、Number这儿不是基本数据类型中的boolean、string、number。上述是包装类,是对象2.包装(类)对象:...原创 2018-06-30 12:59:08 · 1186 阅读 · 0 评论 -
数字到字符串和字符串到数字(已完结)
数字到字符串和字符串到数字在计算机程序中数字的解析和格式化是非常普遍的工作,JS中提供了专门的函数和方法,用来做更加精确的数字到字符串和字符串到数字的转换下面是一些方法/函数:Number——请参看‘包装类、包装类对象、包装类的类型转换功能’toString(radix)除undefined与null外,其他类型都存在toString方法。这儿讲的是Number类中定义的t...原创 2018-06-30 22:20:16 · 1202 阅读 · 0 评论 -
运算符与类型转换(已完结)
运算符与类型转换算术运算符的类型转换基本地算术运算符包括:+、-、*、/、%-、*、/、%1.在操作数不是number类型时,会调用Number将其隐式的转换为数字2.如果有一个操作数为NaN,则运算结果为NaN3.除数为0的运算结果为正无穷/负无穷大;0/0为NaN4.%运算符的符号同左操作数保持一致。-5%2=-1+1.如果有一个操作数是字符串,...原创 2018-07-01 21:11:54 · 343 阅读 · 0 评论 -
由jQuery中的attr与prop方法引起的疑惑
https://github.com/JChehe/blog/commit/259aab7bbf136e75a5c47271d7280d1b86142a08转载 2018-07-08 18:50:09 · 125 阅读 · 0 评论 -
ES6中的字符串API.md
ES6中的字符串扩展与数组扩展#字符串扩展includes用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false语法:str.includes(searchString[, position])searchString——要在此字符串中搜索的字符串;position——可选。从当前字符串的哪个索引位置开始搜寻子字符串,默认值为0let str = 'to b...原创 2018-10-10 13:01:45 · 336 阅读 · 0 评论
分享