当前位置: 首页 > news >正文

【Javascript】前端面试基础2【每日学习并更新10】

模块化开发是怎样做的?

  • 立即执行函数,不暴露私有成员

异步加载JS的方式有哪些

那些操作会造成内存泄漏

  • 是什么:内存泄漏指任何对象在您不再拥有或需要它之后仍然存在
  • 造成内存泄漏:
  1. setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏
  2. 闭包使用不当

XML与JSON的区别

  • 数据体积方面:JSON 相对于XML来讲,数据的体积小,传递的速度更快些。
  • 数据交互方面:JSON JavaScript 的交互更加方便,更容易解析处理,更好的数据交互
  • 数据描述方面:JSON对数据的描述性比XML较差
  • 传输速度方面:JSON 的速度要远远快于XML

Webpack理解

Webpack详解_webpack运行-CSDN博客

WebPack是一个模块打包工具,你可以使用webPack管理你的模块依赖,并编绎输出模块们所需的静态文件。它能够很好地管理、打包 web开发中所用到的HTML、Javascript 、 css 以及各种静态文件(图片字体等),让开发过程更加高效。对于不同类型的资源,webpack有对应的模块加载器。 webpack模块打包器会分析模块间的依赖关系,最后生成了优化且合并后的静态资源。

AMD与CommonJS

  • CommonJS是服务器端模块的规范,Node.js 采用了这个规范。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD 规范则是非同步加载模块,允许指定回调函数
  • AMD推荐的风格通过返回一个对象做为模块对象,CommonJS 的风格通过对module.exports 或exports 的属性赋值来达到暴露模块对象的目的

JS模块化——AMD、CommonJS和ESModules_js amd-CSDN博客

常见Web安全及防护原理

  •  sql 注入原理:通过把 SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
  • 总的来说有以下几点L:永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-”进行转换等
  • 永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取
  • 永远不要使用管权限的数据库连接,理员为每个应用使用单独的权限有限的数据库连接
  • 不要把机密信息明文存放,请加密或者hash 掉密码和敏感的信息
  • XSS原理及防范:
  1. Xss(cross-site scripting)攻击指的是攻击者往web页面里插入恶意 html标签或者javascript 代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie 中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
  2. XSS防范方法:首先代码里对用户输入的地方和变量都需要仔细检查长度和对"<" ,">”,";" "’"等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag弄出来。这一个层面做好,至少可以堵住超过一半的XSS攻击
  •  XSS与CSRF有什么区别吗?
  1. XSS是获取信息,不需要提前知道其他用户页面的代码和数据包。CSRF 是代替用户完成指定的动作,需要知道其他用户页面的代码和数据包。要完成一次CSRF 攻击,受害者必须依次完成两个步骤
  2. 登录受信任网站A,并在本地生成Cookie
  3. 在不登出A的情况下,访问危险网站B
  • CSRF的防御
  1. 服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数
  2. 通过验证码的方法
     

常见设计模式 

Javascript常见数据结构和设计模式-CSDN博客

为什么要有同源限制?

  • 同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议
  • 举例说明:比如一个黑客程序,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript 读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。

offsetWidth、clientWidth、scrollWidth 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • openmv学习笔记(24电赛笔记)
  • 面完英伟达算法岗,心态崩了。。。
  • 【Python】快速创建一个简易 HTTP 服务器(http.server)
  • 《算法笔记》总结No.11——数字处理(上)欧拉筛选
  • 数据结构与算法-随机快速排序
  • Linux:bash在被调用时会读取哪些启动文件?
  • SQL labs-SQL注入(三,sqlmap使用)
  • 实习心得list
  • Vue 3 实现左侧列表点击跳转滚动到右侧对应区域的功能
  • 高速板开源项目学习(二)
  • 【Node.js基础05】包的理解与使用
  • BUUCTF [MRCTF2020]Ezpop
  • LLM 大语言模型显存消耗估计与计算
  • C语言 —— 函数
  • 如何在Linux上安装配置RabbitMQ消息队列
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • es6
  • FineReport中如何实现自动滚屏效果
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux后台研发超实用命令总结
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spring-boot 启动时碰到的错误
  • vuex 学习笔记 01
  • Web标准制定过程
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 使用Swoole加速Laravel(正式环境中)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微信支付JSAPI,实测!终极方案
  • 一份游戏开发学习路线
  • 用element的upload组件实现多图片上传和压缩
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • hi-nginx-1.3.4编译安装
  • Java性能优化之JVM GC(垃圾回收机制)
  • Spring第一个helloWorld
  • 阿里云服务器如何修改远程端口?
  • ​ssh免密码登录设置及问题总结
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (12)Linux 常见的三种进程状态
  • (14)Hive调优——合并小文件
  • (39)STM32——FLASH闪存
  • (4.10~4.16)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转)ORM
  • ./configure、make、make install 命令
  • .aanva
  • .jks文件(JAVA KeyStore)
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET DataGridView数据绑定说明
  • .net FrameWork简介,数组,枚举
  • .net打印*三角形