zoukankan      html  css  js  c++  java
  • 面试题

    ## src和href的区别
    src是对资源的引用,它指向的内容会嵌入到当前标签的位置,用于代替这个元素,比如<img src="abc.jpg">
    href是超文本引用,用于检历这个标签和外部资源之间的关系。

    ## 同步和异步的区别
    同步:客户端给服务端发送请求,在等待服务端响应的请求时,客户端是不做其他事情的,一直等待服务端处理完成以后返回客户端,这样会使用户等待的时间过长。
    同步的使用场景:有时必须要拿到返回的数据才能进行下一步操作时,用同步,异步是解决不了的。
    异步:将请求去放入队列,并反馈给用户,在等待服务器响应的同时,客户端可以去做其他的事情,大大的提高了效率。

    ## json的了解
    json是一种轻量级的数据交换格式,采用了完全独立于编程语言的文本格式来存储和表示数据。
    JSON的特点:1.json是一种轻量级的数据交换格式,不是js独有的
               2.json的组成:简单值+"对象"+"数组"
               3.json里面的字符串需要加双引号
               4.json里面没有var关键之,没有分号(;)等js相关语法。

    ## document.load和document.ready的区别
    load事件需要页面完全加载完成以后才可以触发 。 
    ready事件不要求页面完全加载完,只需要dom结构加载完成(不包含图片等非文字bai媒体文件du)即可触发。

    ## iframed的缺点
    iframe是一种框架,也是一种很常见的网页嵌入方式

    iframe的优缺点分析
    ifrmae元素可以在父文档中插入一个新的HTML文档。
    <iframe>优点:
    解决加载缓慢的第三方内容如图标和广告等的加载问题
    Security sandbox
    并行加载脚本
    <iframe>的缺点:
    即时内容为空,加载也需要时间
    会阻止页面加载
    没有语意

    ## xhtml和html的区别
    XHTML是可扩展表姐语言 html是超文本标记语言
    相比于html,xhtml要求1.标签必须闭合。
                        2.所有标签的元素和属性的名字都必须使用小写。
                        3.所有的XML表姐都必须合理嵌套。
                        4.所有的属性都要用引号""括起来

    ## html的全局属性
    class 规定了元素的类名
    id 规定了元素的唯一ID
    dir 规定元素中内容的文本方向
    hidden 规定该元素是无关的,被隐藏的元素不会显示
    lang 规定元素中内容的语言代码
    style 规定元素的行内样式
    title 规定了元素的额外信息。

    ## base64的原理及优缺点
    图片的base64编码就是将一副图片数据编码成一串字符串,使用该字符串代替图像地址
    优点:减少请求数量(减轻服务器的压力)
    缺点:图片体积会更大(文件请求速度会更慢)
    所以一般8-12k以下的图片适合用base64。

    ## 对浏览器内核的了解
    浏览器一共有五大浏览器,分别是:
    IE(Trident内核),Firefox(Gecko内核),Chrome(Blink内核),Safari(webkit内核),Opera(presto——>webkit->Blink)

    ## cookie的缺点(三点)
    1.隐私问题,启用cookie的web浏览器会跟踪访问过的所有网站。第三方可以访问这些写cookie储存的信息
    2.安全问题,cookie是以明文形式存储,任何人都可以打开并修改cookie
    3.难以解密,我们可以手动去加密和解密cookie,但需要额外的编码,会影响浏览器的性能
    4.大小有限制(4k,一般只能储存20个左右),只能储存简单的字符串信息。

    ## 常用的测试代码性能的工具
    loadrunner 用的人多、资料全、可以录制,支持java写脚本,推荐入门学习
    jmeter该软件开源免费,从性能测试的基本功能角度应该都能满足你的需要

    对于代码级别常用的性能测试工具有DevPartner Studio、Red Gate、Jtest、Jprobe、JunitPerf和Xdebug等

    ## 从前端的角度出发做好SEO需要考虑什么
    SEO其实就是搜索引擎优化,是一种通过特定的方法优化自己网站的自然搜索排名的方法。

    了解搜索引擎如何抓取网页和如何索引网页
      你需要知道一些搜索引擎的基本工作原理, 各个搜索引擎之间的区别, 搜索机器人(SE robot 或叫 web crawler) 如何进行工作, 搜索引擎如何对搜索结果进行排序等等。

    Meta 标签优化
      主要包括主题(Title), 网站描述(Description), 和关键词(Keywords) 。 还有一些其它的隐藏文字比如 Author(作者) , Category(目录) , Language(编码语种) 等。如何选取关键词并在网页中放置关键词
    搜索就得用关键词。 关键词分析和选择是 SEO 最重要的工作之一。 首先要给网站确定主关键词(一般在 5 个上下) , 然后针对这些关键词进行优化, 包括关键词密度(Density) , 相关度(Relavancy) , 突出性(Prominency) 等等。

    了解主要的搜索引擎
      虽然搜索引擎有很多, 但是对网站流量起决定作用的就那么几个。 比如英文的主要有Google, Yahoo, Bing 等; 中文的有百度, 搜狗, 有道等。 不同的搜索引擎对页面的抓取和索引、 排序的规则都不一样。 还要了解各搜索门户和搜索

    引擎之间的关系, 比如 AOL 网页搜索用的是 Google 的搜索技术, MSN 用的是 Bing 的技术。

    主要的互联网目录
      Open Directory 自身不是搜索引擎, 而是一个大型的网站目录, 他和搜索引擎的主要区别是网站内容的收集方式不同。 目录是人工编辑的, 主要收录网站主页; 搜索引擎是自动收集
    的, 除了主页外还抓取大量的内容页面。

    按点击付费的搜索引擎
      搜索引擎也需要生存, 随着互联网商务的越来越成熟, 收费的搜索引擎也开始大行其道。 最典型的有 Overture 和百度, 当然也包括 Google 的广告项目 Google Adwords。 越来越多的人通过搜索引擎的点击广告来定位商业网站, 这里面也大有优化和排名的学问, 你得学会用最少的广告投入获得最多的点击。

    搜索引擎登录
      网站做完了以后, 别躺在那里等着客人从天而降。 要让别人找到你, 最简单的办法就是将网站提交(submit) 到搜索引擎。 如果你的是商业网站, 主要的搜索引擎和目录都会要求你付费来获得收录(比如 Yahoo 要 299 美元) , 但是好消息是(至少到目前为止) 最大的搜索引擎 Google 目前还是免费, 而且它主宰着 60%以上的搜索市场。

    链接交换和链接广泛度(Link Popularity)
      网页内容都是以超文本(Hypertext) 的方式来互相链接的, 网站之间也是如此。 除了搜索引擎以外, 人们也每天通过不同网站之间的链接来 Surfing(“冲浪” ) 。 其它网站到你的网站的链接越多, 你也就会获得更多的访问量。 更重要的是, 你的网站的外部链接数越多,会被搜索引擎认为它的重要性越大, 从而给你更高的排名。

    合理的标签使用

    ## table的缺点
    1.table要不它html标签占更多的字节(延迟下载时间,占用服务器更多的流量资源)
    2.table会做当浏览器渲染引擎的渲染顺序(会延迟页面的生成速度)
    3.在某些浏览器中Table文字的拷贝会出现问题。
    4.table一旦设计完成就会变成死的,很难通过css让他展示新的面貌。

    ## IE和标准浏览器对事件处理的区别
    命令会不同
    1.监听:
      标准:element.addEventListener()
           element.removeEventLister()
      IE:element.attachEvent()
          element.detachEvent()

    2.阻止冒泡
      标准:event.stopPropagation();
      IE:event.cancelBBubble=true;

    3.阻止默认行为
      标准:event.preventDefault();
      IE:event.returnValue=false;

    4.event
      标准:event
      IE8以下:window.event

    5.触发当前事件的源对象
      Firefox,Chrome:event.target
      IE,Chrome:event.srcElement
      

    ## 哪些操作会造成内存泄漏
    首先了解什么是内存泄漏:就是没有使用,或者已将使用完的变量,没有及时回收。
    1.意外产生的全局变量
    (1)初始化未经声明的变量。总是会创建出一个全局变量
     (2)由this创建的全局变量
     注意:有些全局变量产生的垃圾不可回收,尤其是当全乎变量用于临时储存和处理大量信息的时候,确保用完之后将它设置为null。

    2.计时器或回调函数
    一旦定时器不需要,就去将他移除

    3.dom清空或删除时,事件未清除导致的内存泄漏

    4.闭包,会产生全局变量,在IE下可能造成内存泄漏。

    ## 堆和栈的区别
    堆:队列优先,先进先出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表。

    栈:先进后出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
    堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,主要有如下几种区别: 
    (1)管理方式不同。
    栈由操作系统自动分配释放,无需我们手动控制;堆的申请和释放工作由程序员控制,容易产生内存泄漏;

    (2)空间大小不同。
    每个进程拥有的栈的大小要远远小于堆的大小。理论上,程序员可申请的堆大小为虚拟内存的大小,进程栈的大小 64bits 的 Windows 默认 1MB,64bits 的 Linux 默认 10MB;

    (3)生长方向不同。
    堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内存地址由高到低。

    (4)分配方式不同。
    堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是由操作系统完成的,比如局部变量的分配。动态分配由alloca函数进行分配,但是栈的动态分配和堆是不同的,他的动态分配是由操作系统进行释放,无需我们手工实现。

    (5)分配效率不同。
    栈由操作系统自动分配,会在硬件层级对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是由C/C++提供的库函数或运算符来完成申请与管理,实现机制较为复杂,频繁的内存申请容易产生内存碎片。显然,堆的效率比栈要低得多。

    (6)存放内容不同。
    栈存放的内容,函数返回地址、相关参数、局部变量和寄存器内容等。当主函数调用另外一个函数的时候,要对当前函数执行断点进行保存,需要使用栈来实现,首先入栈的是主函数下一条语句的地址,即扩展指针寄存器的内容(EIP),然后是当前栈帧的底部地址,即扩展基址指针寄存器内容(EBP),再然后是被调函数的实参等,一般情况下是按照从右向左的顺序入栈,之后是被调函数的局部变量,注意静态变量是存放在数据段或者BSS段,是不入栈的。出栈的顺序正好相反,最终栈顶指向主函数下一条语句的地址,主程序又从该地址开始执行。堆,一般情况堆顶使用一个字节的空间来存放堆的大小,而堆中具体存放内容是由程序员来填充的。

    ### 常见web安全防护原理
    https://blog.csdn.net/liu0415111/article/details/79601227
     
    ## null和undefined的区别
    null表示没有对象,即该处不应该有值
    (1) 作为函数的参数,表示该函数的参数不是对象
    (2) 作为对象原型链的终点
    undefined表示缺省值,即此处应该有值,但没有定义
    (1)定义了形参,没有传实参,显示undefined
    (2)对象属性名不存在时,显示undefined
    (3)函数没有写返回值,即没有写return,拿到的是undefined
    (4)写了return,但没有赋值,拿到的是undefined
    null和undefined转换成number数据类型
    null 默认转成 0
    undefined 默认转成 NaN
  • 相关阅读:
    (网页)中的简单的遮罩层
    (后端)shiro:Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
    (网页)jQuery的时间datetime控件在AngularJs中使用实例
    Maven Myeclipse 搭建项目
    MyBatis 环境搭建 (一)
    java 常用方法
    XML 基础
    JS BOM
    js 事件
    js 的使用原则
  • 原文地址:https://www.cnblogs.com/lmm1010/p/13274585.html
Copyright © 2011-2022 走看看