以前不知道 file 控件也能使用 onchange,导致面试时失去良机。 <script> function yulan() { var fileext=document.form1.UpFile.value.substring(document.form1.UpFile.value.lastIndexOf("."),document.form1.UpFile.value.length) fileext=fileext.toLowerCase() if ((fileext!='.jpg')&&(fileext!='.gif')&&(fileext!='.jpeg')&&(fileext!='.png')&&(fileext!='.bmp')) { alert("对不起,...
1.要想在正则表达式中按照直接量匹配反斜线本身,必须使用反斜线将其转义。() A.正确 B.错误 2、2.WINDOWS下,要摘取绝对路径字符串最前端的磁盘驱动器部分(即A:/B:/C:/...),用正则表达式实现是/^[A-Za-z]:/() A.正确 B.错误 3、3.\W这个字符类等价于字符类[a-zA-Z0-8]。() A.正确 B.错误 4、4.0到999间的任意整数对应正则表达式是/[^0-9]{1,3}$/。() A.正确 B.错误 5.在JS正则表达式中,当n=m时,{n,m}等价于{m}或...
实现防抖函数(debounce)防抖函数原理:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。那么与节流函数的区别直接看这个动画实现即可。手写简化版:// 防抖函数 const debounce = (fn, delay) => { let timer = null; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); }, delay); }; };适用场景:按钮提交场景:防止多次提交按钮,只执行最后提交的一次服...
4. 下面代码的输出是什么?function* generator(i) { yield i; yield i * 2;} const gen = generator(10); console.log(gen.next().value);console.log(gen.next().value);A: [0,10],[10,20]B: 20,20C: 10,20D: 0,10and10,20答案: C一般的函数在执行之后是不能中途停下的。但是,生成器函数却可以中途“停下”,之后可以再从停下的地方继续。当生成器遇到 yield关键字的时候,会生成 yield后面的值。注意,生成器在这种情况下不 返回...
相关知识点 数据类型、运算、对象、function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Ajax、DOM、BOM、内存泄漏、跨域、异步加载、模板引擎、前端MVC、前端MVVM、路由、模块化、Http、Canvas、jQuery、ECMAScript 2015(ES6)、Node.js、AngularJS、Vue、React… 题目&答案 介绍一下 JS 的基本数据类型。Undefined、Null、Boolean、Number、String 介绍一下 JS 有哪些内置对象。Object 是 JavaScript 中所有对象的父对象...
常见JavaScript基础面试题上(附答案) 1、JavaScript有哪些垃圾回收机制? 有以下垃圾回收机制。 标记清除( mark and sweep) 这是 JavaScript最常见的垃圾回收方式。当变量进入执行环境的时候,比如在函数中声明一个变量,垃圾回收器将其标记为“进入环境”。当变量离开环境的时候(函数执行结束),将其标记为“离开环境”。 垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量,以及被环境中变...
前端面试题Html 目录 前端面试题 Html CSS JavaScript Vue#块元素和空元素#html语义化html5新特性和移除标签渐进增强和优雅降级浏览器内核浏览器输入url到显示页面过程实现圆形可点击区域cookie,sessionStorage,localStorage网站性能优化 CSS 居中问题清除浮动外边距坍塌盒子模型em和remBFCposition定位css初始化自适应布局css优化 JavaScript typeof返回数据类型强制类型转换this创建对象数组去重判断是否为数组原型事件代理同步异...
JavaScript面试题101-110 每日坚持学10道题101. 设计盒模型 [问答题] 画图描述 CSS 盒模型,用 JS 实现获取元素宽和位置,注意兼容性。来自:去哪儿 参考: var element = document.getElementById("div"); function getWeizhi(element) {var top = document.documentElement.clientTop;var left = document.documentElement.clientLeft;var ele = element.getBoundingClientRect();return {top: ele.top - top,right: ele.right ...
JavaScript面试题91-100 每日坚持学10道题91. 原生 js 实现div 可拖拽 [问答题] 请使用原生 js 实现一个 div 可拖拽,需要考虑浏览器兼容性。来自:阿里巴巴 参考: var drag1 = document.getElementById('drag1'); drag1.onmousedown = function (ev) {var x = ev.clientX - drag1.offsetLeft;var y = ev.clientY - drag1.offsetTop;drag1.onmousemove = function (ev) {drag1.style.left = ev.clientX - x + 'px';drag1.style.t...
JavaScript面试题11-20 每日坚持学10道题11. [填空题] 填写内容让下面代码支持 a.name = “name1”; b.name = “name2”; function obj(name){ _____ } obj._____ = "name2"; var a = obj("name1"); var b = new obj;来自:阿里巴巴前端开发工程师笔试 答案:if (name) { this.name = name; } return this; prototype.name 12. [填空题] javascript 语言特性中,有很多方面和我们接触的其他编程语言不太一样,比如说,javascrip...
1.JS基础 谈谈你对原型链的理解?如何判断是否是数组?ES6模块与CommonJS模块有什么区别聊一聊如何在JavaScript中实现不可变对象?JavaScript的参数是按照什么方式传递的?JS有那些类型?为什么会有Biglnt的提案?null与undefined的区别是什么?0.1+0.2为什么不等于0.3?类型转换的规则有那些?类型转换的原理是什么? 2.JS机制 解释下变量提升?一段JavaScript代码是如何执行的?JavaScript的作用域链理解嘛?谈一谈你对this的了解?...
1.说几条写JavaScript的基本规范 不要在同一行声明多个变量请是用 ===/!== 来比较 true/false 或者数值使用对象字面量替代 new Array 这种形式不要使用全局函数Switch 语句必须带有 default 分支If 语句必须使用大括号for-in 循环中的变量 应该使用 let 关键字明确限定作用域,从而避免作用域污染 2.绕不过去的闭包 闭包就是能够读取其他函数内部变量的函数闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就...
把你的前端拿捏得死死的,每天学习得爽爽的,达达前端程序员 感谢不负每一份热爱前端的程序员,不论前端技能有多奇葩,欢迎关注前言 希望可以通过这篇文章,能够给你得到帮助。 1. JavaScript垃圾回收机制的了解 对于在JavaScript中的字符串,对象,数组是没有固定大小的,只有当对他们进行动态分配存储时,解释器就会分配内存来存储这些数据,当JavaScript的解释器消耗完系统中所有可用的内存时,就会造成系统崩溃。内存泄漏,在某...
1. 转字符串 const input = 123;console.log(input + ''); // '123' console.log(String(input)); // '123' console.log(input.toString()); // '123' 2. 转数字 const input = '123';console.log(+input); // 123 console.log(Number(input)); // 123 console.log(parseInt(input)); // 1233.转布尔值 const input = 1;// 方案1 -使用双感叹号(!!)转换为布尔值 console.log(!!input); // true// 方案2 - 使用 Boolean() 方法 cons...
前面的话 根据 JavaScript 的运行环境,锁定它为单线程,任务需要排队执行,如果网站资源比较大,这样会导致浏览器加载会很慢,但实际上并没有,大家肯定立刻想到了同步和异步。 所谓的同步和异步也是在排队,只是排队的地方不同。 同步和异步 同步任务进入主线程排队,异步任务进入事件队列中排队 同步任务和异步任务进入到不同的队列中,也就是上面讲的在不同地方排队。 同步任务进入主线程,异步任务进入事件队列,主线程任务...