
前端
runzhi_z
这个作者很懒,什么都没留下…
展开
-
常见手写函数
function _new(){ var obj = {} var [constructor, ...args] = arguments obj.__proto__ = constructor.prototype constructor.apply(obj, args) return obj}function People(name){ this.name = name this.printName = function(){ co原创 2020-09-01 14:45:57 · 486 阅读 · 0 评论 -
原型
// 原型 & 原型链// 什么是原型?: 当我们创建一个新函数时,会为函数创建一个prototype属性,属性指向函数的原型对象// 什么是原型链?: 对象之间存在继承关系,javascript中通过prototype属性指向父类对象,直到指向object,形成的原型指向的链条,成为原型链// 构造函数(constructor)?: 原型对象默认有一个constructor属性,包含指向prototype属性所在函数的指针function Person(){}Person.pro.原创 2020-09-01 14:30:35 · 254 阅读 · 0 评论 -
手写promise
// 手写promise (function(window){ /** * 构造函数 * executor:执行器函数 */ function Promise(executor){ var self = this self.status = 'pending' // 状态,初始为pending self.data = undefined // 储存结果 self.callbacks = [原创 2020-09-01 14:26:56 · 172 阅读 · 0 评论 -
promise & generator & async/await
// promise// 关于回调地狱/** * 回调函数带来的问题: * 1. 代码可读性差 * 2. 回调比较多时,错误捕捉难处理 * 3. 控制反转带来的信任问题 -- 在进行异步请求时,用到第三方工具库,回调函数交由第三方库执行,由第三方库决定何时执行回调函数,执行回调函数次数,第三方工具库是否百分之百可靠,带来的信任问题 */// try { setTimeout(()=>{ console.log(1) setTimeout(()=原创 2020-09-01 14:24:41 · 133 阅读 · 0 评论 -
延时问题的链式调用
问题:function Queue(){ }实现队列Queue的两个方法:add(timeout, callback) -- 给队列中添加方法start() -- 执行队列中的方法,执行完之后队列清空 实现链式调用例如:var que = new Queue()que.add(1000, function(){ console.log("1")}).add(2000, function(){ console.log("2")}).add(1000,原创 2020-09-01 14:21:51 · 296 阅读 · 0 评论 -
this指向问题
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>this指向常见问题</title></head><body> <script&原创 2020-09-01 11:45:47 · 169 阅读 · 0 评论 -
闭包
// 闭包// 何为闭包?: 有权访问另外一个函数作用域中变量的函数,简单形式就是:外部函数中生成一个内部函数,并通过return来返回,内部函数可以访问外部函数作用域中的函数,因此,外部函数调用之后变量对象本该被销毁,但由于闭包的存在,我们仍然可以在全局访问外部函数的变量。// 关键:闭包引用外部函数的变量;在外部函数的外部调用闭包// 注意事项:函数的作用域会一直保存到闭包不存在// example:function arrFn(){ var arr = [] for(var原创 2020-09-01 11:43:59 · 140 阅读 · 0 评论 -
ES6 -- 字符串
字符串的unicode表示ES6加强了unicode的支持,只要将码点放在 { } 中,就可以正确解读码点不在\u0000~\uFFFF范围内的字符console.log("\u20BB7") //₻7console.log("\u{20BB7}") //????字符串的遍历器接口ES6为字符串添加了遍历器接口,使得字符串可以被for…of…遍历for(let c of "str"){ console.log(c) // s t r}模板字符串模板字符串写在反引号原创 2020-09-01 11:42:15 · 140 阅读 · 0 评论 -
class继承
ES6中引入class创建类,extends实现类的继承,通过new来创建实例类,这种形式的类的创建与继承与Java等面向对象编程语言更为相似class Point{ constructor(x,y){ // -- 每个类都要有constructor,若没有显式定义,则会默认添加空的constructor this.x = x this.y = y } toString (){ return '('+this.x+','+this.原创 2020-09-01 11:40:38 · 145 阅读 · 0 评论 -
Class多种继承方式
// class 的多种继承方式// 继承1 -- 原型链继承:子类的prototype为父类的实例function Person() { this.name = "person" this.arr = [1, 2]//引用类型} Person.prototype.printName = function () { console.log(this.name)}function Student() { this.name="student"}Student.p原创 2020-09-01 11:39:28 · 1025 阅读 · 0 评论 -
CSS常用布局(主要三栏布局)
CSS常用五种布局:三栏布局,两列自适应布局,单列布局,等高布局,粘连布局从面试最常问到的开始吧:三栏布局七种实现方式:浮动布局当元素使用float时,块元素会脱离标准流,按照float所设置的属性值向其父元素(内边距)的左右两边靠拢,且其他元素会自动忽略该元素,盒子的宽度不会独占一行,而是由具体宽度或其内容决定补充:标准流的概念 – 网页内标签元素正常由上到下,从左到右的顺序排列...原创 2020-03-10 16:21:10 · 292 阅读 · 0 评论 -
JavaScript基础
JavaScript是一种脚本语言,主要包括:ECMAScript–提供核心语言功能,DOM–文档对象模型–提供访问操作网页内容的方法和接口,BOM–浏览器对象模型–提供与浏览器交互的方法和接口。1.JavaScript基本数据类型先来了解一下检测数据类型的操作符:typeofeg:var msg = "hello world";alert(typeof msg);typeof是操作符,后面...原创 2019-10-21 00:07:27 · 117 阅读 · 0 评论 -
前端之HTML&CSS
我也不知道为什么,前端从入门才看了不到一个月,中间还忙其他事,项目也没做,代码也没敲多少,啥也不会就投了百度的前端实习生,大概看了一下网上的前端面经更是想哭,啥也不说了,我是练习时长一个月的前端小菜!1.HTML语义化什么是HTML,HTML即超级文本标记语言,通过不同标记符号来标记网页不同部分。HTML语义化,从字面上理解,就是让HTML中的标记符号具有语义。例如:<h1>表示...原创 2019-10-19 14:24:14 · 232 阅读 · 0 评论 -
前端笔记
刚开始写前端,觉得一些知识真的很杂,属性真的很多(记不住啊),(很不系统,就是项目用到什么写什么,之后再做系统的汇总)lang = “en” html中的lang属性,首先lang是language的缩写,“语言”,这个属性是设置文本语言,(en代表设置为英语),你会发现如若不设置lang属性,也没什么问题,那么是否设置lang属性有什么区别,区别在于:如若你设置的lang与浏览器...原创 2019-09-26 14:32:07 · 208 阅读 · 0 评论