javascript
文章平均质量分 78
wyw223
这个作者很懒,什么都没留下…
展开
-
javascript call和apply的用法
存在call和apply的意义function cat(){}cat.prototype={ food:"fish", say: function(){ console.log("I love "+this.food); }}var blackCat = new cat;blackCat.say() //I love fishI love fish...原创 2018-12-12 18:17:21 · 155 阅读 · 0 评论 -
js实例对象与 new 命令
面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。那么,“对象”(object)到底是什么?我们从两个层次来理解。(1)对象是单个实物的抽象。一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当...原创 2019-01-20 21:36:28 · 858 阅读 · 0 评论 -
js创建对象的几种方式
1.通过字面量的方式创建对象 let per = { name:'zhangsan', age:25, job:'html', sayName:function(){ alert(this.name); } }缺点:代码复用性差,如果要创建多个类似的对象,会产生...原创 2019-01-20 22:34:49 · 339 阅读 · 0 评论 -
js继承的几种方式
1.原型链继承核心: 将父类的实例作为子类的原型将构造函数的原型设置为另一个构造函数的实例对象,这样就可以继承另一个原型对象的所有属性和方法,可以继续往上,最终形成原型链父类// 定义一个动物类function Animal (name) { // 属性 this.name = name || 'Animal'; // 实例方法 this.sleep = function...原创 2019-01-20 23:31:33 · 3373 阅读 · 1 评论 -
js中this的用法
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象1.全局作用域或者普通函数中this指向全局对象window//直接打印console.log(this) //window//function声明函数function bar () {console.log(this)}bar() //window/...原创 2019-01-20 23:55:39 · 1080 阅读 · 0 评论 -
js中的原型
每个构造函数都有一个prototype属性,指向函数的原型对象每个实例对象都有一个-proto-属性,指向创建该对象的构造函数的原型原创 2019-01-21 00:05:31 · 116 阅读 · 0 评论 -
js Object.create() 方法
Object.create() 方法创建一个拥有指定原型和若干个指定属性的对象Object.create(proto, [ propertiesObject ])proto一个对象,应该是新创建的对象的原型propertiesObject可选。该参数对象是一组属性与值,该对象的属性名称将是新创建的对象的属性名称,值是属性描述符(这些属性描述符的结构与Object.defineProper...原创 2019-01-21 00:31:03 · 1668 阅读 · 0 评论 -
js 面试题一 设计类
根据下题的描述,设计一个类class Car { constructor(number, name) { this.number = number this.name = name }}class Kuaiche extends Car { constructor(number, name) { super(numbe...原创 2019-01-21 00:41:15 · 207 阅读 · 0 评论 -
js 面试题二 设计类
根据以下题目描述设计一个类// 车class Car { constructor(num) { this.num = num }}// 入口摄像头class Camera { shot(car) { return { num: car.num, inTime: Date.now()...原创 2019-01-21 00:43:49 · 225 阅读 · 0 评论 -
js中Object 对象的相关方法
1.Object.getPrototypeOf()Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法var F = function () {};var f = new F();Object.getPrototypeOf(f) === F.prototype // true// 空对象的原型是 Object.prototypeObject.g...原创 2019-01-21 17:21:06 · 1352 阅读 · 0 评论 -
js 实现一个深拷贝
function deepClone(obj) { function isObject(o) { return (typeof o === 'object' || typeof o === 'function') && o !== null } if (!isObject(obj)) { throw new Error('非对象') } le...原创 2019-03-01 15:15:51 · 560 阅读 · 0 评论 -
js 里边的new都做了什么及实现一个new
//new 的实现//new 都做了什么//1.创建了一个新对象//2.将构造函数作用域赋值一个新对象,this指向这个新对象//3.执行构造函数中的代码(为这个函数添加新属性)//4.返回新对象function create (){ //创建一个空对象 var obj = new Object() //获取构造函数,arguments的第一个参数,因为ar...原创 2019-03-04 13:33:15 · 502 阅读 · 0 评论 -
js中instanceof原理
instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置function Car(make, model, year) { this.make = make; this.model = model; this.year = year;}var auto = new Car('Honda', 'Accord', 1998);conso...原创 2019-03-04 14:07:00 · 2251 阅读 · 0 评论 -
js中生成唯一id的方法
1.随机数长度控制,定义一个长度变量(length),生成可控长度的随机数Math.random().toString(36).substr(3,length)2.引入时间戳Date.now().toString(36)3.合在一起最终办法genID(length){return Number(Math.random().toString().substr(3,length) + Da...转载 2019-03-12 17:42:12 · 1668 阅读 · 0 评论 -
js将每个单词的首字母变为大写
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U...原创 2019-03-26 14:57:33 · 4442 阅读 · 0 评论 -
js formData对象
formData对象用于组装表单数据,以键值对的形式存在。FormData 首先是一个构造函数,用来生成实例var formdata = new FormData(form);FormData()构造函数的参数是一个表单元素,这个参数是可选的。如果省略参数,就表示一个空的表单,否则就会处理表单元素里面的键值对。<form id="myForm" name="myForm">...原创 2019-01-24 16:19:14 · 1481 阅读 · 0 评论 -
web worker简介
我们都知道JavaScript这个语言在执行的时候是采用单线程进行执行的,也就是说在同一时间只能做一件事,这也和这门语言有很大的关系,采用同步执行的方式进行运行,如果出现阻塞,那么后面的代码将不会执行,HTML5则提出了web Worker标准,表示JavaScript允许有多个线程,但是子线程完全受主线程的控制,切子线程不能操作DOM,只有主线程可以操作DOM,所以以主线程为主的单线程执行原理成...原创 2019-01-24 02:32:21 · 136 阅读 · 0 评论 -
js深拷贝与浅拷贝
在JavaScript中对象的浅拷贝和深拷贝有如下区别:浅拷贝:仅仅复制对象的引用,而不是对象本身。深拷贝:复制对象所引用的全部对象。浅拷贝的时候如果数据是基本数据类型,那么就如同直接赋值那种,会拷贝其本身,如果除了基本数据类型之外还有一层对象,那么对于浅拷贝而言就只能拷贝其引用,对象的改变会反应到拷贝对象上;但是深拷贝就会拷贝多层,即使是嵌套了对象,也会都拷贝出来。浅拷贝1.自定义实现...原创 2019-01-24 02:22:29 · 98 阅读 · 0 评论 -
JavaScript数组Array
Array类型也很常用,ECMAScript数组的每一项可以保存任何类型的数据,数组的大小也是可以动态调整的,既可以随着数据的增加自动增长以容纳新数据创建数组的方式1.使用Array构造函数 var names = new Array(20) //创建length为20的数组 var colors = new Array(&amp;quot;red&amp;quot;,&amp;quot;blue&amp;quot;原创 2018-12-09 02:53:16 · 218 阅读 · 0 评论 -
javascript单体内置对象
概述global对象可以说是ECMAScript中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的。从某种意义上讲,它是一个终极的“兜底儿对象”,换句话说呢,就是不属于任何其他对象的属性和方法,最终都是它的属性和方法。我理解为,这个global对象呢,就是整个JS的“老祖宗”,找不到归属的那些“子子孙孙”都可以到它这里来认祖归宗。所有在全局作用域中定义的属性和函数,都是glo...原创 2018-12-10 18:30:21 · 164 阅读 · 0 评论 -
JavaScript 基本概念语法、数据类型、语句和函数
语法区分大小写标识符:指的是变量函数和属性的名字,或者函数的名字,推荐使用驼峰命名法严格模式:ES5引入了严格模式的概念。严格模式是为JavaScript定义了一种不同的定义和解析模型,在严格模式下ES3的一些不确定行为将得到处理,一些不安全的操作也会抛出错误,要在整个脚本中启用严格模式,需要在顶部添加以下代码“use strict语句:以一个分号作作为结尾变量:变量是松散类型...原创 2018-12-08 17:26:17 · 165 阅读 · 0 评论 -
javascript 闭包
javascript 闭包文章目录javascript 闭包定义特性JS 闭包的实例讲解闭包的好处闭包的缺点闭包常见用法定义当一个函数即便在离开了它的词法作用域(Lexical Scope)的情况下,仍然存储并可以存取它的词法作用域(Lexical Scope),这个函数就构成了闭包。function Student(){var age=22;function addAge(){...原创 2018-12-18 12:58:11 · 206 阅读 · 1 评论 -
js DOM Node 接口
所有 DOM 节点对象都继承了 Node 接口,拥有一些共同的属性和方法。这是 DOM 操作的基础属性1.Node.prototype.nodeType nodeType属性返回一个整数值,表示节点的类型document.nodeType // 9文档节点(document):9,对应常量 Node.DOCUMENT_NODE元素节点(element):1,对应常量 Node.ELE...原创 2019-01-23 22:09:21 · 332 阅读 · 0 评论 -
js DoM NodeList 接口,HTMLCollection 接口
节点都是单个对象,有时需要一种数据结构,能够容纳多个节点。DOM 提供两种节点集合,用于容纳多个节点:NodeList和HTMLCollection。1.NodeList实例是一个类似数组的对象,它的成员是节点对象。通过以下方法可以得到NodeList实例。 Node.childNodes document.querySelectorAll()等节点搜索方法document.body....原创 2019-01-23 22:34:51 · 252 阅读 · 0 评论 -
js DOM createNodeIterator()和createTreeWalker()
1.document.createNodeIterator()document.createNodeIterator方法返回一个子节点遍历器。var nodeIterator = document.createNodeIterator( document.body, NodeFilter.SHOW_ELEMENT);上面代码返回元素子节点的遍历器。document.create...原创 2019-01-23 22:56:54 · 885 阅读 · 0 评论 -
js DOM事件流
DOM(文档对象模型)结构是一个树型结构,当一个HTML元素产生一个事件时,该事件会在元素结点与根节点之间按特定的顺序传播,路径所经过的节点都会收到该事件,这个传播过程可称为DOM事件流。1.事件冒泡(推荐)IE的事件流称为事件冒泡。即:事件由最具体的元素接收(div),逐级向上传播到不具体的节点(document)。当我们点击代码片段一中id为box的div块时,单击事件会按照如下顺序传...原创 2019-01-23 23:35:42 · 583 阅读 · 0 评论 -
js 事件委托
传统的事件处理中,需要为每个元素添加事件处理器。js事件代理则是一种简单有效的技巧,通过它可以把事件处理器添加到一个父级元素上,从而避免把事件处理器添加到多个子级元素上。事件代理的原理用到的就是事件冒泡和目标元素,把事件处理器添加到父元素,等待子元素事件冒泡,并且父元素能够通过target(IE为srcElement)判断是哪个子元素,从而做相应处理, 下面举例说明:传统的事件会为每个dom添...原创 2019-01-23 23:45:01 · 92 阅读 · 0 评论 -
js 事件绑定
addEventListener:绑定事件的监听函数removeEventListener:移除事件的监听函数1.EventTarget.addEventListener() EventTarget.addEventListener()用于在当前节点或对象上,定义一个特定事件的监听函数。一旦这个事件发生,就会执行监听函数。该方法没有返回值target.addEventListener(ty...原创 2019-01-24 00:08:18 · 115 阅读 · 0 评论 -
Js 的事件循环(Event Loop)机制
1.为什么JavaScript是单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScrip...转载 2019-01-24 00:59:09 · 141 阅读 · 0 评论 -
es6 中的Generator
Generator函数是ES6提供的一种异步编程解决方案。通过yield标识位和next()方法调用,实现函数的分段执行。1.Generator函数 function* helloGenerator() { yield "hello"; yield "generator"; return; } var h = helloGenerator...原创 2019-01-24 01:16:11 · 115 阅读 · 0 评论 -
es6中的asyc await
async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。想较于 Generator,Async 函数的改进在于下面四点:内置执行器。Generator 函数的执行必须依靠执行器,而 Aysnc 函数自带执行器,调用方式跟普通函数的调用一样更好的语义。async 和 await 相较于 * 和 yield 更加语义化...原创 2019-01-24 01:29:58 · 2537 阅读 · 0 评论 -
js正则表达式
var t = 'sda43645dfgkl' var reg = /\d/ //字面量 var reg = new RegExp('\d') //构造函数 //reg.test(str) :判断字符串中是否具有指定模式的子串,返回结果是一个布尔类型的值 console.log(reg.test(t)) ...原创 2019-01-24 01:37:08 · 124 阅读 · 0 评论 -
js获取页面上的所有标签
new Set([...document.querySelectorAll('*')].map(v => v.tagName));new Set(Array.from(document.querySelectorAll('*')).map(v => v.tagName));原创 2019-03-30 18:58:56 · 3280 阅读 · 0 评论