作者 | Daniel Anderson 译者 | 核子可乐 策划 | 田晓旭 不容错过的 11 项 HTML/JS/CSS 技巧。 通过以下 HTML/CSS/JavaScript 相关技巧,希望能帮助大家填补一点点关于前端开发方面的知识空白。 data:text/html, <html contenteditable> 11 在 if 代码块中,去掉多个语句之间的大括号 if (1 === 1)alert("Alert 1"), alert ("Alert 2"); 12 总结 虽然这 11 项技巧未必都很实用,但至少也算是各具价值,而且大多没能在实际前端开发中得到重视。 原文链接: https://medium.com/javascript-in-plain-english/11-frontend-tricks-that-most-frontend-developers-dont-know-about
Web前端就是当用户在浏览器地址栏中输入一行字母看到的页面结果。然而,从输入字母到看到页面中都发生了什么,数据是怎么得到的?这些都离不开HTTP/HTTPS。 (11)403 Forbidden表示禁止访问。 (12)404 Not Found表示找不到如何与URI相匹配的资源。 res. write('< meta charset="UTF-8">
但这里修改的是o的member vairable(成员变量),而o的reference并没有改变。 从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。 在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。 在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。
本期题目(参考答案在文末): 温馨提示 进入公众号,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的文章列表,通过“最新资源”==>“微课专区”可以观看Python微课,通过“ 12319738.html 4)《中学生可以这样学Python》清华大学出版社(2018年9月第3次印刷)https://item.jd.com/12258900.html 5)《Python程序设计开发宝典
前言 本次解析本套高级前端的Vue面试题的第三问,Vue中是如何检测数组变化的,如果对这一问也有所不熟悉的,请一起学习吧。 ---- 上一文中,我们提到了Vue2.0和3.0的响应式原理,但是没有深入细讲,在本文会进行深入的分析Vue在2.0版本和3.0版本里,分别是如何检测各种数据类型的值变化,从而做到页面响应式的,并且搞清楚为何数组类型的变化要特殊处理 ,最后也将Vue从2.x升级到3.x的过程中为何要采用了不同的数据监测原理的原因也一探究竟。 b、回到文章开始示例的那一段Vue代码里的实现,我改变了Vue的data下list的下标属性值,页面是没有响应变化的,但是这里我改了list的内的值从1到5,页面响应了,这又是怎么回事? 2、数组的操作方法如果是操作已经存在的被监听的元素也是可以触发setter被监听的。
前言 最近拿到一套高级前端的Vue面试题,从头往下看了一遍,居然大部分都是一知半解的,遂准备一道一道的认真学习总结,立志做一位Vue高级开发者! ? 提到MVVM,很多前端开发者都会想到Vue的双向绑定,然而它们并不能划等号,MVVM是一种软件架构模式,而Vue只是一种在前端层面上的实现,其实不单在Vue里,在很多Web 框架应用里都有相关的实现。 因为前端独立开发发布,实际相对原来的MVC模式是少了View这一层,这也让新的概念Restful出现在我们的视野里,很多新的框架又开始支持提供这种前端控制轻量级模式下的适配方案。 随着前端对于控制逻辑的越来越轻量,MVVM模式作为MVC模式的一种补充出现了,万变不离其宗,最终的目的都是将Model里的数据展示在View视图上,而MVVM相比于MVC则将前端开发者所要控制的逻辑做到更加符合轻量级的要求 实现的更友好,更适合开发者开发应用程序。
与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间 inline : CSS1 内联对象的默认值。 旁边的内联对象会被呈递在同一行内 inherit: 看display默认是不具备继承性的,使用inherit可以让其继承父对象的display属性。 )打开名为 “window2” 的新窗口的 JavaScript 语法是? ---- 以下都是多选题 ---- 多选题 (共计 8 题,总计 16分) 11、(多选题)在使用table表现数据时,有时候表现出来的会比自己实际设置的宽度要宽,为此需要设置下面哪些属性值? <body> 【正确答案】A,B,D 【答案解析】这里说的是html文档的结构标准、规范,html、head、body是一个html文档中必须的标签 18、(多选题)关于html的盒模型,下列说法正确的是
一、前言 微信为广大开发者提供了两个平台,分别是微信公众平台和微信开放平台。本节将简单概述这两个平台的基本功能。 如果希望给关注着展示更多的内容,可以选择订阅号。订阅号的缺点是,一个用户的所有订阅号会收缩至【订阅号消息】中降低了订阅号的打开频率,而且开发接口没有服务号那么丰富,不能调用支付接口。 但是服务号在微信中是与好友在同一级别展示的,增加了服务号的打开频率。而且服务号提供了丰富的开发接口。商家可以通过服务号为用户提供线上功能,网店或者在线课堂也可以通过服务号扩展业务。 小程序 我们可以把小程序当做嵌入在微信中的app。 三、微信开放平台 微信开发平台需要单独注册,不能与微信公众平台使用相同的邮箱。 五、开发文档 公众号开发文档 小程序开发文档 开放平台开发文档 微信支付开发文档 JS-SDK说明文档
在生命周期的每个节点,Vue提供了一些钩子函数,使得开发者的代码能被有机会执行。 这里的钩子函数可以简单理解为,在Vue实例中预先定义了一些像created,mounted等特定名称的函数,函数体的内容开发给开发者填充,当被实例化的时候,会按照确定的先后顺序来执行这些钩子函数,从而将开发者的代码有机会执行 对于如何在Vue内部调用开发者的代码原理,可以看看下面这个例子。 第一,从开发者的代码层面看看,与开发者较为密切的数据模型与页面DOM结构在各个生命周期钩子函数执行时的变化。第二,在源码层面看一下这些生命周期钩子函数它们各自的执行过程。 下面是源码里所列出来的所有可承载开发者代码的钩子函数。
既然都是前端开发,两者肯定有紧密的联系,移动前端开发和web前端开发其实都属于前端开发的范围,目前前端发展的趋势就是大前端,可以说是包罗万象,当然也就包含PC端和移动端领域,而现在的前端开发人员也已早就不是当年的切图仔了 ,需要学习和掌握大前端体系方方面面的知识才能在日常的开发中游刃有余,但是不论趋势如何发展,目前来看HTML、CSS和JavaScript依然是整个前端开发的三大基石。 所以不论是想做移动前端开发还是web前端开发,这三样基础技术都必须熟练掌握。 移动前端开发和web前端开发都属于前端开发,那具体又有什么区别呢? 1、业务的应用场景 web前端开发主要指传统的PC端网页开发,页面主要是运行在PC端浏览器中,移动前端开发出来的页面主要是运行在手机上;直观上会感觉,PC端页面大一些,移动端页面小一些,但是根据开发经验 ,页面大可并不代表书写的代码复杂,页面小也并不意味着开发简单,难与易主要还是取决于具体的业务需求。
最近面试中碰到了一道关于JS执行顺序的题目,题目比较基础,但是如果对于JS不熟的话,还是容易答不上来。再次记录和分析此次面试题,希望对大家有所帮助。 首先看官肯定知道JS是单线程,实现异步的方法就是定时器和es6+出现的promise/async等,那么现在问题来了,既然es6出现的新的异步方式,那么和之前的定时器相比,那个异步先执行呢? 在这里要记住一句话,微任务的优先级是高于宏任务的。参考面试题解答 前端进阶面试题详细解答程序执行顺序1、主程序因为js是单线程的,同一时间只能有一段代码在执行,所以首先执行的就是JS的主程序。 ,await后面跟着的部分也是会立即执行的。 同时删除宏任务队列中对应的任务,再次回到第二步。微任务:空宏任务:空11、执行结束检测到任务队列都已执行完成,代码执行结束。
而由于Vue内部的渲染机制,实际上页面只会渲染一次,把第一次的赋值所带来的的响应与第二次的赋值所带来的的响应进行一次合并,将最终的val只做一次页面渲染。 从性能角度,例子里最终的需要展示的数据其实就是第二次给val赋的值,如果第一次赋值也需要页面渲染则意味着在第二次最终的结果渲染之前页面还需要渲染一次无用的渲染,无疑增加了性能的消耗。 pushTarget(this); // 将实例push到全局数组targetStack var vm = this.vm; value = this.getter.call(vm, vm); ... } 11 flushSchedulerQueue(); return } // 将页面更新函数放进异步API里执行,同步代码执行完开始执行更新页面函数 nextTick(flushSchedulerQueue); } 在我们的开发代码里 this.dirty = true; } else if (this.sync) { this.run(); } else { queueWatcher(this); } }; 在开发代码中
,'2019-02-01','month') //["2018-05", "2018-06", "2018-07", "2018-08", "2018-09", "2018-10", "2018-11 ", "2018-12", "2019-01", "2019-02"] 3、moment.js当日期为周日时,获取所在周的周日,出现的bug let date='2019-08-11' //获取该日期所在的周几 = moment(date) .week(+end_weeknumber) .isoWeekday(7) .format('YYYY-MM-DD') //'2019-08-11 ' 特别特别需要注意的就是,当所选日期是周日的时候,获取所在的周数是需要加 1 的 配合 前端小知识10点(2019.9.29) 的第一点使用: 完美版: let date='2019-08-11' ,一个是拖拽,另一个是鼠标滚轮滚动里也用到过 10、获取网页缩放比例 window.devicePixelRatio 11、控制input光标的位置——setSelectionRange 文档参考: https
简述一下背景故事,今天有一个年轻人来我们公司面试前端,主管临时找我充当了一次面试官,个人工作经验尚佳,面试经验一般,随口问了他 8 个问题,小伙子回答的不错,我让他明天来和人事谈薪资。 在我们的面试环节当中,面试官不一定就是前端工作人员,也可能工作经验不如你我丰富,不会说我们公司只用Vue开发项目就只问你Vue传参和封装,涵盖前端各个知识点才能看出一个人的基本功是否扎实。 优点:避免全局变量的污染,私有成员的存在。 9,防抖:多次触发事件后,n秒内函数只能执行一次; 节流:多次触发事件后,函数每n秒执行一次; (本章完) 前端的学习不是一蹴而就,不积跬步无以至千里,不积小流无以成江海。 持续不断的努力才能让你我有所收获,专业的知识还得到机构去学习,培训机构的设立有其存在的必然性,你钱花对了吗?
前端行业其实很少人去深究前端开发工程师中的“工程师”这三个字,究竟是什么意思。其实在我看来,许多所谓的前端开发工程师只是做前端开发的工作而已,远配不上工程师这三个字。 恩,其实我是说,我配得上前端开发工程师中的“工程师”这三个字。不要急着喷我,我有理由的。 举个例子吧,外包公司大家都知道,在那公司里,多数都是只做软件,不做业务。 我不仅拥有编写前端程序代码的开发思路,我还有能解决问题的思路。我这种能力比能记住和使用很多函数方法插件框架。。这些东西要强的多。 可能我回答他的答案并不标准,但肯定没有说错。对于一个合格的开发工程师来讲,不管你前端还是后端,给你一个活儿,你最好想想它是干嘛的?谁需要它?它的产出物给谁? 就例如淘宝双11时,前端资源的千万级并发访问,这问题你根本都接触不到的,人家就能给解决了!那人家就是大神了。就这么简单。
一、概述 在web开发中,我们经常会让网站接入微信登录功能,这样用户免于注册账号,网站开发人员也可以更为方便地获取到用户信息。 一、网站扫码登录置流程 开发文档 具体的开发流程官方文档已经给出了详细的说明,但是文档更关注的是严谨和全面,本节的内容更倾向于简单易懂。下面介绍一下扫码登录的开发流程。 网站微信扫码登录流程 网站跳转到以下链接:注意连接中的两个参数 appid:微信开发平台提供的appid redirect_url:用户扫码登陆后跳转的地址 https://open.weixin.qq.com 在redirect_url对应的页面渲染之前,我们已经拿到了微信服务器发来的code参数。 三、微信浏览器登录 上面已经介绍了网站的扫码登录,主要针对的是PC端的用户。
10,es module 和 commonjs 的区别 11,react 里如何做动态加载 12,动态加载的原理是啥,就是 webpack 编译出来的代码 13,写一个处理加法可能产生精度的函数, ,所以没问前端任何知识,主要聊业务相关的,看看我对业务的理解,以及一些想法。 96道前端面试题 下面给大家分享96道前端面试题,如果有需要可以点击这里免费领取! 1,一些开放性题目 自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势。 项目介绍 如何看待前端开发? 平时是如何学习前端开发的? 未来三到五年的规划是怎样的? 2,position的值, relative和absolute分别是相对于谁进行定位的? 5,谈谈你对webpack的看法 6,说说TCP传输的三次握手四次挥手策略 7,TCP和UDP的区别 8,说说你对作用域链的理解 9,创建ajax过程 10,渐进增强和优雅降级 11,常见web
前端面试题视频讲解实现类的继承类的继承在几年前是重点内容,有n种继承方式各有优劣,es6普及后越来越不重要,那么多种写法有点『回字有四样写法』的意思,如果还想深入理解的去看红宝书即可,我们目前只实现一种最理想的继承方式 不用Child.prototype = new Parent()的原因是会调用2次父类的构造方法(另一次是call),会存在一份多余的父类实例属性3. :首先用字符串的方式来保存大数,这样数字在数学表示上就不会发生变化初始化res,temp来保存中间的计算结果,并将两个字符串转化为数组,以便进行每一位的加法运算将两个数组的对应的位进行相加,两个数相加的结果可能大于 在这个对象上使用 open 方法创建一个 HTTP 请求,open 方法所需要的参数是请求的方法、请求的地址、是否异步和用户的认证信息。在发起请求前,可以为这个对象添加一些信息和监听函数。 当对象的 readyState 变为 4 的时候,代表服务器返回的数据接收完成,这个时候可以通过判断请求的状态,如果状态是 2xx 或者 304 的话则代表返回正常。
开通微信支付后,需要在微信支付后台【产品中心】=>【开发配置】中配置【JSAPI支付授权目录】和【Native支付回调链接】,如下图所示: image.png 微信支付可以分为两种情况,微信浏览器之外的扫码支付 然后将这个值传递给前端,再由前端调用jsapi完成支付,示例代码如下所示: 1 document.querySelector(".pay").onclick = function(){ 2 "signType": `{{signType}}`, //微信签名方式: 10 "paySign": `{{paySign}}` //微信签名 11 if (res.err_msg == "get_brand_wcpay_request:ok") { 14 // 使用以上方式判断前端返回 code_url字段,将这个字段的值传递给前端,然后转换成二维码,用户扫码即刻完成支付。
Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可 :判断调用对象是否为函数,即使我们是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况。 ,并且返回接受余下的参数且返回结果的新函数的技术。 处理传入的参数,截取第一个参数后的所有参数。将函数作为上下文对象的一个属性。使用上下文对象来调用这个方法,并保存返回结果。删除刚才新增的属性。返回结果。