达达前端个人web分享92道JavaScript面试题附加回答
前言希望可以通过这篇文章,能够给你得到帮助。
1. JavaScript垃圾回收机制的了解对于在JavaScript中的字符串,对象,数组是没有固定大小的,只有当对他们进行动态分配存储时,解释器就会分配内存来存储这些数据,当JavaScript的解释器消耗完系统中所有可用的内存时,就会造成系统崩溃。
内存泄漏,在某些情况下,不再使用到的变量所占用内存没有及时释放,导致程序运行中,内存越占越大,极端情况下可以导致系统崩溃,服务器宕机。
so,JavaScript有自己的一套垃圾回收机制,JavaScript的解释器可以检测到什么时候程序不再使用这个对象了(数据),就会把它所占用的内存释放掉。
针对JavaScript的来及回收机制有以下两种方法(常用):标记清除,引用计数。
标记清除当变量进入到执行环境时,垃圾回收器就会将其标记为“进入环境”,当变量离开环境时,就会将其标记为“离开环境”。
垃圾回收器在运行时会给存储在内存中的所有变量都加上标记,接着去掉环境环境中的变量,和被环境中的变量所引用的变量的标记,在此之后再被加上标记的变量将被视为准备删除的变量,就是要删除的变量,垃圾收集器 ...
腾讯位置服务开发应用
前言作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
公司内做的是共享项目, 场景是这样的,一种常见共享充电宝(功能差不多和流行的共享单车一样),在做小程序首页时,需要做到的是扫码充电,联系客服(问题反馈),获取地理位置,开篇即是一副地理位置,在你附近获取到区域内店铺信息,点击该店的logo标志可以获取该店的地理位置,营业时间,店名,距离,是否当前该店里是否有可借的充电宝等信息。
共享充电电动车🚗,首页也是一副地理位置地图,可以获取你附近最近的共享电动车,获取车的地址,状态等信息。显示该车的剩余电量,使用记录,租借订单,获取行程轨迹,某时间段内的里程,动态显示轨迹等。
涉及到的共享其实内容很多(如除了电动车,充电宝,还可租借设备等),但大都功能几乎相同,需要交押金,租借费用,信用免押金等。开发过app,H5,web网站,小程序项目都与地图相关的位置服 ...
云开发技术总结
下面围绕这些规范写内容
文章的创新型
文章的实用性
代码的可借鉴性
代码的规范度
小程序云开发入门到实践:
123456789101112wx.cloud.init({ // env 参数: // 小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 如不填则使用默认环境(第一个创建的环境) // env: 'my-env-id', traceUser: true,})wx.cloud.init({ env: 'da-da', traceUser: true,})
云函数的配置与部署
1.下载安装node.js,node.js是在服务端运行JavaScript的运行环境,云开发所使用的服务端环境是node.js,npm是Node包管理器,通过npm可以方便的安装云开发所使用的依赖包。
123node --versionnpm --version打开电脑终端(Windows电脑为cmd命令提示符,M ...
面试官问我Chrome浏览器的渲染原理(6000字长文)
前言对于HTML,css和JavaScript是如何变成页面的,这个问题你了解过吗?浏览器究竟在背后都做了些什么事情呢?让我们去了解浏览器的渲染原理,是通往更深层次的开发必不可少的事情,能让我们更深层次,多角度的去考虑性能优化等问题。
HTML,css,JavaScript数据经过中间渲染模块的处理,最终显示在页面上(其中HTML超文本标记语言,CSS层叠样式表,JS为JavaScript,大家一般都知道是什么,写过网页的朋友,学习者大都知道的)。
HTML的内容是由标记和文本组成
CSS称为层叠样式表,是由选择器和属性组成
JS是可以使网页的内容“动”起来
有人说渲染流程可以分为:构建DOM树,样式计算,布局阶段,分层,绘制,分块,光栅化和合成等。其中浏览器复习一下,它是多线程的的,js是单线程的,JS在浏览器中,它可以是多线程的。
下面围绕浏览器渲染原理话题开始描述,为什么要了解浏览器渲染页面机制呢?。
浏览器渲染原理首先,JavaScript引擎是基于事件驱动单线程执行的,渲染线程负责渲染浏览器界面,但是GUI渲染线程与JS引擎是互斥的,当JS引擎执行时GUI线程会被挂起,G ...
面试官一上来就问我Chrome底层原理和HTTP协议(万字长文)
前言有人说,如果你懂得浏览器的工作原理,你就能解决80%的前端难题。
是的,了解浏览器的工作原理,有助于你的工作;而了解TCP/IP 、HTTP等网络协议,更是对你未来的职业发展大有裨益。
下面,我总结了4个面试常考的关于浏览器和网络通信的问题,为你重新梳理浏览器,网络通信、页面渲染、JavaScript、浏览器安全等知识,从而让你对整个前端后端体系有全新的认识。
第一问:Chrome为什么打开一个页面,会有4个进程?学习掌握:浏览器中的网络流程,页面渲染过程,JavaScript执行流程,以及Web安全理论。下面展开问题了解多进程架构:
多进程架构的学习
进程和线程的概念混淆
如计算来说,单线程就是一个接一个的计算,多线程就是同时处理多个计算。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,就是说允许单个程序创建多个并行执行。
单线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
多线程也是程序,所以线程需要占用内存,线程越多占用内存也越多,多线程需要协调和管 ...
前端开发JavaScript-巩固你的JavaScript知识体系
JavaScript基础语法
12345678910111213var a = [1, 2, 5];for(var k in a){ console.log(k); // k 为当前元素的下标}for(var m of a){ console.log(m); // m 为当前元素的值}VM215:3 0VM215:3 1VM215:3 2VM215:6 1VM215:6 2VM215:6 5
变量声明
var 声明一个变量,可赋一个初始值。
let 声明一个块作用域的局部变量,可赋一个初始值。
const 声明一个块作用域的只读命名的常量。
变量的名字又叫做“标识符”,必须以字母、下划线(_)或者美元符号($)开头,并且区分大小写。
若没有为变量赋初始值,则值默认为undefined
若没有声明变量而直接使用,抛出ReferenceError错误
当变量值为undefined时,布尔值环境当做false
当变量值为null时,布尔值环境当做false
数据类型
Boolean布尔值,true和false
null对 ...
当你在百度搜索关键字的时候,哪个网站会排在最前面?今天给大家科普一下网站SEO
前言什么是SEO呢?SEO是Search Engine Optimization,意为“搜索引擎优化”,一般简称为搜索优化。对于SEO的主要工作就是通过了解各类搜索引擎如何抓取互联网页面,如何进行索引以及如何确定其对某一个特定关键词的搜索结果排名等技术,来对网页进行相关的优化,来提供搜索引擎排名,提高网站访问量。
如果能够很好的使用SEO技术,就能够改善您的网站排名并增加其在相关搜索中的可见程度,让你的网页在用户搜索过程中的可见度越来越高,这样您的网站就可能吸引更多的注意力和影响力,并吸引潜在的客户和现有客户加入您的业务当中。
总结一句:SEO代表搜索引擎优化,它是通过自然搜索引擎结果增加访问您网站的流量的数量和质量的一种做法。
SEO本质那么SEO是如何工作的呢?例如一些浏览器的搜索引擎使用漫游器来获取web页面,从一个站点到另一个站点,收集有关页面的信息并讲其放入索引中。然后,通过算法会分析索引中的页面,并考虑数百种排名因素或信号等,来确定应该在给定查询的搜索结果中显示的页面顺序。
搜索排名因素可以被视为用户体验方面的代理。内容质量和关键字研究是内容优化的关键因素,搜索算法旨在显示 ...
后端逆袭,一份不可多得的PHP学习指南
前言我想问自己,为什么要学习PHP,什么是PHP,学习之后,我能做什么,未来的发展,那么如何学习一门编程语言,如何给出学习建议。
php是一种超文本预处理器的学习语言,它是一种被广泛应用的开放源代码的多用途的脚本语言,它可嵌入到HTML中,尤其是适合web开发。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。语言的风格类似于C语言,现在被很多的网站编程人员广泛的运用。使用PHP可以开发各种交互式的动态网页。
那么如何理解动态网页呢?接下来说一说:
动态网站和静态网站的区别?
动态网站:可以和数据库交互的网站
静态网站:不能和数据库交互
还有如LAMP这些词代表什么意思呢?在PHP中常用到的:
LAMP是什么呢,需要了解一下?
L:LINUX
A:Apache
M:mysql
P:PHP
扩展性说说如下词汇,需要我们逐步去了解。
PHP环境搭建(LAMP,LNMP,LNMPA)LAMP: Linux+Apache+MySQL+PHP
LNMP: Linux+Nginx+MySQL+PHP
LNMPA: Linux+Nginx+MySQL+PHP+Apache
W ...
什么是MySQL数据库?看这一篇干货文章就够了!
前言为啥学习MySQL呢?因为MySQL是最流行的关系型数据库管理系统之一,在web应用方面,MySQL是最好的软件。MySQL所使用的sql语言是用于访问数据库的最常用标准化语言。
放心,读这期内容的朋友们都适合:网站开发,软件开发或者爱好者。
1.MySQL的入门什么是数据库呢?
数据库,它是按照数据结构来组织,存储和管理数据的仓库。
数据库管理系统, 指数据库系统中对数据进行管理的软件系统。
让我来整理一张思维导图:
细节掌握:
安装配置,常用命令,操作数据库;
整型与浮点型,日期时间型与字符型;
创建与查看数据库表,修改数据库表,删除数据库表;
非空约束,主键约束,唯一约束,默认约束,外键约束;
管理工具:MySQL Workbench,SQLyog;
单表数据记录的插入与自动编号,单表数据记录的更新,单表数据记录的删除,单表数据记录的查询,对查询结果进行分组,对查询结果进行排序,通过limit语句限制查询记录的数量;
mysql的运算符,数值函数,字符函数,日期时间函数,聚合函数,信息函数与加密函数;
使用比较运算符引发的子查询,插入记录时使用的子查询
多表连接,内连接 ...
熬夜7天,我总结了JavaScript与ES的25个重要知识点!
前言说起JavaScript,大家都知道是一门脚本语言。那么ES是什么鬼呢?ES全称ECMAScript ,是JavaScript语言的国际标准。
最近总结了条js的基础特性相关的知识点,大家一起看一下吧
1.严格模式
使用严格模式,可以在函数内部进行较为严格的全局和局部的错误条件检查
严格模式的编译指示,”use strict”
创建全局变量,未声明变量,非严格模式下为创建全局变量;严格模式下为抛出ReferenceError
对变量调用delete操作符,删除变量,非严格模式下为静默失败;严格模式下为抛出ReferenceError
操作对象情况下:a,只读属性赋值会抛出TypeError;b,对不可配置的属性使用delete操作符会抛出TypeError;c,为不可扩展的对象添加属性会抛出TypeError。
重名属性情况:a,非严格模式下没有错误,以第二个属性为准;b,严格模式下会抛出语法错误。
函数参数必须唯一,重名参数,在非严格模式下没有错误,只能访问第二个参数;严格模式下,会抛出错误。12345678function funValue(value) { ...