相关知识点 数据类型、运算、对象、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最常见的垃圾回收方式。当变量进入执行环境的时候,比如在函数中声明一个变量,垃圾回收器将其标记为“进入环境”。当变量离开环境的时候(函数执行结束),将其标记为“离开环境”。 垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量,以及被环境中变...
最初,Javascript 没有导入/导出模块的方法, 这是让人头疼的问题。 想象一下,只用一个文件编写应用程序——这简直是噩梦! 然后,很多比我聪明得多的人试图给 Javascript 添加模块化。其中就有 CJS、AMD、UMD 和 ESM。你可能听说过其中的一些方法(还有其他方法,但这些是比较通用的)。 我将介绍它们:它们的语法、目的和基本行为。我的目标是帮助读者在看到它们时认出它们 CJS CJS 是 CommonJS 的缩写。经常我们这么使用: // im...
前端面试题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...
前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs) 一. HTML 1. 盒子模型是什么:每个元素被表示为一个矩形的盒子,有四个部分组成:内容(content)、内边距(padding)、边框(border)、外边距(margin)。它在页面中所占的实际大小(宽高)是content+padding+border+margin之和。 盒模型有两种:标准盒模型(W3C盒模型)、IE盒模型。 两种盒模型的区别:标准盒模型内容大小就是content大小、而IE盒模型内容大小则是...
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的解释器消耗完系统中所有可用的内存时,就会造成系统崩溃。内存泄漏,在某...
《JavaScript面试大师》系列文章的核心在于沿用应试教育的套路,采取:知识点+刷题的模式来加深巩固理解,目的在于斩获心仪offer,更高的目的在于提升对语言本身的理解,达到融会贯通。Number类型面试题:为什么0.1 + 0.2 = 0.30000000000000004?给Number加一个方法newRound,可以保留小数点后n位 (1.23457.newRound(2) —> 1.23)以下代码输出什么 Number(undefined) ,Number(null)typeof NaN返回什么Number()函数的转换规则["1...
《JavaScript面试大师》系列文章的核心在于沿用应试教育的套路,采取:知识点+刷题的模式来加深巩固理解,目的在于斩获心仪offer,更高的目的在于提升对语言本身的理解,达到融会贯通。Undefined面试题:说一下对undefined的理解undefined和null的区别为什么undefined == null?面试题1:说一下对undefined的理解 解答:undefined是ECMAScript原始类型Undefined类型的唯一值;undefined是Global对象(window是ECMAScript规定的Globa...
前端面试之JavaScript中数组常用的方法! 1 forEach 迭代遍历数组 回调函数中的三个参数value: 数组中的每一个元素-index: 每一个数组元素中的索引号!arr: 数组对象本身2 map map 作用就是为数组中的每一个元素调用一次提供的函数后的返回值!一个由原数组每个元素执行回调函数的结果组成的新数组。 3 filter() 筛选数组 注意点:他是要返回一个新的数组的! 4 some() 查找数组中是否有满足条件的元素 注意点:注意点:它的返回值是...
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...