js基础面试题131160道题目
131.用原生 JavaScript 的实现过什么功能吗?
参考答案:轮播图、手风琴、放大镜、3D动画效果等,切记,所答的一定要知道实现原理!,不知道还不如不说!
参与互动
132.javascript 代码中的"use strict"; 是什么意思 ? 使用它区别是什么?
参考答案:意思是使用严格模式,使用严格模式,一些不规范的语法将不再支持
参与互动
133.简述创建函数的几种方式
参考答案: 第一种(函数声明): function sum1(num1,num2){ return num1+num2; } 第二种(函数表达式): var sum2 = function(num1,num2){ return num1+num2; } 第三种(函数对象方式): var sum3 = new Function("num1","num2","return num1+num2");
参与互动
134.window.location.search() 返回的是什么?
参考答案:查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面, 并使用 javascript 来获得相信应的参数值 返回值:?ver=1.0&id=timlq 也就是问号后面的!
参与互动
135.window.location.hash 返回的是什么?
参考答案:锚点 , 返回值:#love ;
参与互动
136.window.location.reload() 作用?
参考答案:刷新当前页面
参与互动
137.为什么不能定义 1px 左右的 p 容器?
参考答案: IE6 下这个问题是因为默认的行高造成的,解决的方法也有很多,例如: overflow:hidden | zoom:0.08 | line-height:1px
参与互动
138.BOM 对象有哪些,列举 window 对象?
参考答案: 1、window对象 ,是JS的最顶层对象,其他的BOM对象都是window对象的属性; 2、document对象,文档对象; 3、location对象,浏览器当前URL信息; 4、navigator对象,浏览器本身信息; 5、screen对象,客户端屏幕信息; 6、history对象,浏览器访问历史信息;
参与互动
139.简述 readonly 与 disabled 的区别
参考答案:
参与互动
140.为什么扩展 javascript 内置对象不是好的做法?
参考答案:
参与互动
141.什么是三元表达式?"三元"表示什么意思?
参考答案:三元如名字表示的三元运算符需要三个操作数。
语法是 条件 ? 结果1 : 结果2; .这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。
参与互动
142.我们给一个 dom 同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获
参考答案:所有事件的顺序是:其他元素捕获阶段事件 -> 本元素代码顺序事件 -> 其他元素冒泡阶段事件 。
参考
参与互动
144.简述一下 Handlebars 的基本用法?
参考答案:没有用过的话说出它是干什么的即可
参与互动
143.简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
参考答案:
参与互动
145.前端 templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
参考答案:Web 模板引擎是为了使用户界面与业务数据(内容)分离而产生的,Mustache 是一个 logic-less (轻逻辑)模板解析引擎,它的优势在于可以应用在 Javascript、PHP、Python、Perl 等多种编程语言中。Underscore 封装了常用的 JavaScript 对象操作方法,用于提高开发效率。Handlebars 是 JavaScript 一个语义模板库,通过对 view 和 data 的分离来快速构建 Web 模板。
参与互动
146.知道什么是 webkit 么? 知道怎么用浏览器的各种工具来调试和 debug 代码么?
参考答案:Webkit 是浏览器引擎,包括 html 渲染和 js 解析功能,手机浏览器的主流内核,与之相对应的引擎有 Gecko(Mozilla Firefox 等使用)和 Trident(也称 MSHTML,IE 使用)。 对于浏览器的调试工具要熟练使用,主要是页面结构分析,后台请求信息查看,js 调试工具使用,熟练使用这些工具可以快速提高解决问题的效率
参与互动
147.如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
参考答案:了解 BDD 行为驱动开发与 TDD 测试驱动开发已经单元测试相关概念
参与互动
148.JavaScript 的循环语句有哪些?
参考答案:while for do while forEach
参与互动
149.作用域-编译期执行期以及全局局部作用域问题
参考答案:js 执行主要的两个阶段:预解析和执行期
参与互动
150.如何添加 html 元素的事件,有几种方法?请列举
参考答案:直接在标签里添加;在元素上添加、使用事件注册函数添加
参与互动
151.列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个
参考答案:
对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
参与互动
152.事件绑定的方式
参考答案:嵌入 dom直接绑定btn.onclick = function() {};事件监听btn.addEventListener("click", function() {});
参与互动
153.事件循环
参考答案:事件循环是一个单线程循环,用于监视调用堆栈并检查是否有工作即将在任务队列中完成。如果调用堆栈为空并且任务队列中有回调函数,则将回调函数出队并推送到调用堆栈中执行。
参与互动
154.事件模型
参考答案:DOM0直接绑定 btn.onclick = function() {} btn.onclick = null DOM2DOM2 级事件可以冒泡和捕获 通过 addEventListener 绑定 通过 removeEventListener 解绑 // 绑定 btn.addEventListener("click", sayHi) // 解绑 btn.removeEventListener("click", sayHi) DOM3DOM3 具有更多事件类型 DOM3 级事件在 DOM2 级事件的基础上添加了更多的事件类型,全部类型如下: UI事件,当用户与页面上的元素交互时触发,如:load、scroll 焦点事件,当元素获得或失去焦点时触发,如:blur、focus 鼠标事件,当用户通过鼠标在页面执行操作时触发如:dbclick、mouseup 滚轮事件,当使用鼠标滚轮或类似设备时触发,如:mousewheel 文本事件,当在文档中输入文本时触发,如:textInput 键盘事件,当用户通过键盘在页面上执行操作时触发,如:keydown、keypress 合成事件,当为IME(输入法编辑器)输入字符时触发,如:compositionstart 变动事件,当底层DOM结构发生变化时触发,如:DOMsubtreeModified
解析:参考
参与互动
155.如何自定义事件
参考答案:
1.原生提供了 3 个方法实现自定义事件 2.createEvent,设置事件类型,是 html 事件还是 鼠标事件 3.initEvent 初始化事件,事件名称,是否允许冒泡,是否阻止自定义事件 4.dispatchEvent 触发事件
MDN
参与互动
156.target 和 currentTarget 区别
参考答案:event.target返回触发事件的元素event.currentTarget返回绑定事件的元素
参与互动
157.prototype 和__proto__的关系是什么
参考答案:
所有的对象都拥有__proto__属性,它指向对象构造函数的 prototype 属性 let obj = {} obj.__proto__ === Object.prototype // true function Test(){} var test = new Test() test.__proto__ == Test.prototype // true
所有的函数都同时拥有__proto__和 protytpe 属性 函数的__proto__指向自己的函数实现 函数的 protytpe 是一个对象 所以函数的 prototype 也有__proto__属性 指向 Object.prototype function func() {} func.prototype.__proto__ === Object.prototype // true
Object.prototype.__proto__指向 null Object.prototype.__proto__ // null
参与互动
158.什么是原型属性?
参考答案:从构造函数的prototype属性出发找到原型,这时候就把原型称之为构造函数的原型属性
参与互动
159.什么是原型对象?
参考答案:从实例的__proto__出发,找到原型,这时候就把原型称之为实例的原型对象。
参与互动
160.使用 let、var 和 const 创建变量有什么区别
参考答案:
用 var 声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,也可以是声明在任何函数外的变量。let 和 const 是块级作用域,意味着它们只能在最近的一组花括号(function、if-else 代码块或 for 循环中)中访问。function foo() { // 所有变量在函数中都可访问 var bar = "bar"; let baz = "baz"; const qux = "qux"; console.log(bar); // bar console.log(baz); // baz console.log(qux); // qux } console.log(bar); // ReferenceError: bar is not defined console.log(baz); // ReferenceError: baz is not defined console.log(qux); // ReferenceError: qux is not definedif (true) { var bar = "bar"; let baz = "baz"; const qux = "qux"; } // 用 var 声明的变量在函数作用域上都可访问 console.log(bar); // bar // let 和 const 定义的变量在它们被定义的语句块之外不可访问 console.log(baz); // ReferenceError: baz is not defined console.log(qux); // ReferenceError: qux is not defined
var 会使变量提升,这意味着变量可以在声明之前使用。let 和 const 不会使变量提升,提前使用会报错。console.log(foo); // undefined var foo = "foo"; console.log(baz); // ReferenceError: can"t access lexical declaration "baz" before initialization let baz = "baz"; console.log(bar); // ReferenceError: can"t access lexical declaration "bar" before initialization const bar = "bar";
用 var 重复声明不会报错,但 let 和 const 会。var foo = "foo"; var foo = "bar"; console.log(foo); // "bar" let baz = "baz"; let baz = "qux"; // Uncaught SyntaxError: Identifier "baz" has already been declared
let 和 const 的区别在于:let 允许多次赋值,而 const 只允许一次。// 这样不会报错。 let foo = "foo"; foo = "bar"; // 这样会报错。 const baz = "baz"; baz = "qux";
小米MIXFlip渲染图7英寸折叠屏骁龙8芯片,对标华为价格大下滑折叠屏这两年的销量大增,一方面是因为价格下跌了不少,另一方面折叠屏技术越来越成熟了,易用性和寿命大幅增加,目前三星依然是折叠屏领域里的王者,跟随者有华为小米摩托罗拉,另外荣耀也即将
早做准备早脱单!跨年夜的礼物我已经给你挑好了,快来抄作业作者焱公子内容团队陈小星男同胞们,男同胞们,注意啦!不要以为你过了平安夜和圣诞夜就万事大吉了,女生最考验你是不是在意她的时刻就要来了!没错,就是跨年夜!你能不能顺利转正,就看你在跨
苹果推出虎年新机,限量2万个苹果推出虎年定制AirTag,限量2万个。将于1月2日和3日,向日本用户提供特别活动,购买在日本购买iPhone12iPhone12mini或iPhoneSE的前20000名客户,
王清宪与黄维举行工作会谈中安在线中安新闻客户端讯12月30日下午,省长王清宪与中国科学院院士西北工业大学柔性电子前沿科学中心首席科学家黄维一行举行工作会谈。省委常委副省长张红文参加。黄维院士是我国柔性电子
你的手机为什么越来越卡,你知道原因吗手机在我们的生活中扮演着非常重要的角色,是朋友是聊天工具是游戏机是电影院是播放器手机用久了之后,电池续航会越来越差,还会变得卡顿,运行App缓慢,整个处理性也能会越来越差,就像人会
节能电机板块或迎来机遇电机板块不仅脚踩新能源车稀土永磁风电军工四大黄金赛道,还是十四五重点规划方向,重要性却被市场严重低估。我国的电机经过很长一段时间的沉寂,终于迎来了利好消息。近期,我国预计在2030
华为鸿蒙OS明年冲击欧洲市场,并称正在研究5G芯片为了生存,华为还真是想了很多。无论是宣布一个新系统,还是开发一项新技术,都意味着它一直在努力。因为当华为不够努力的时候,其他厂商就会超越,就会出现更高的销量,这在现在的市场上是很残
对!就是她抢了小米12的全球首发小米12VSMotoEdgeX30昨天将小米12对比了VivoS12,是觉得跟小米12发布的时间比较靠近,今天找来了抢小米12(高通骁龙CPU)全球首发的元凶MOTO罗拉Edgex
小米12pro搭载小米自研芯片澎湃P1昨天晚上,小米正式发布了小米12系列智能手机,其中小米12Pro搭载了自主研发的芯片澎湃P1。小米12据悉,这款芯片搭配小米的120W充电技术,可以同时实现大容量和高功率充电,满足
比小米12更顶?红米K50曝光天玑9000百瓦快充三星柔性屏备受期待的小米12系列终于在昨天发布了,不过小智感觉小米12系列的热度似乎并没有往年来得高,从某东上的预定就能看出,现在都能轻易付定金下单,而往年第一轮早就抢光了。小智认为这次小米
广东高院终审判决游戏地图换皮构成侵权新华社广州12月6日电(记者李雄鹰)广东省高级人民法院6日对深圳市腾讯计算机系统有限公司与畅游云端(北京)科技有限公司英雄互娱科技股份有限公司等著作权侵权及不正当竞争纠纷上诉案公开